Запись файла на рабочий стол с использованием API-интерфейса HTML5 FileSystem API
Я немного поиграл с API файловой системы.
Я нашел много примеров, когда вы создаете ссылку для загрузки и позволяете пользователю загружать файл "способ браузера".
Я хотел бы знать две вещи:
-
Есть ли способ записать результат ajax в скрипту в виде файла непосредственно на диск (без какого-либо типа подсказки). Например, для рабочего стола пользователя.
-
Является ли blob наиболее подходящим для этого форматом?
http://jsfiddle.net/FBGDe/
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
console.log(this.response, typeof this.response);
var img = document.getElementById('img');
var url = window.URL = window.webkitURL;
img.src = url.createObjectURL(this.response);
}
}
xhr.open('GET', 'http://www.newyorker.com/online/blogs/photobooth
/NASAEarth-01.jpg');
xhr.responseType = 'blob';
xhr.send();
Ответы
Ответ 1
К сожалению, запись в обычные файлы в настоящее время невозможна (несмотря на принятый ответ Изменение локальных файлов с использованием HTML5 и JavaScript).
Вы можете писать только в изолированную файловую систему.
FYI, вы можете сделать это в Chrome Packaged App: http://developer.chrome.com/apps/fileSystem.html Но даже тогда пользователь должен как минимум сначала выбрать файл, Запись в любой файл будет серьезной дырой в безопасности.
Какую проблему вы действительно пытаетесь решить?
Ответ 2
Обратите внимание, что API файловой системы больше не входит в стандартную спецификацию, как указано в:
http://www.w3.org/TR/file-system-api/
EDIT:
Указание спецификации в случае изменения ссылки:
"API файлов: каталоги и система
W3C Рабочая группа Примечание 24 апреля 2014 года
Работа над этим документом была прекращена, и на нее не следует ссылаться или использоваться в качестве основы для реализации. "
(Это не относится к вопросу напрямую, но важно знать, что еще не использовать API FileSystem.)
Другая ссылка:
http://www.html5rocks.com/en/tutorials/file/filesystem/
"В апреле 2014 года было объявлено на публичных веб-серверах, что спецификация API файловой системы должна считаться мертвой. Другие браузеры не проявили большого интереса к ее реализации".