html 5 + webkitRequestFileSystem: сохранить файл изображения от пользователя
Используя webkitRequestFileSystem, я хочу сделать что-то очень простое: получить файл от пользователя, сохранить его в локальной файловой системе браузера и использовать его позже (например, в качестве образа src и т. д.)
Я читал о webkitRequestFileSystem, но не нашел ничего о клонировании файлов от пользователя (может быть, я пропустил это?).
поэтому я попытался наивно реализовать чтение, получение файла, запись, и все, кажется, работает (вызывает обратный вызов успеха), и я вижу файл с расширением Chrome (проводник файловой системы HTML5), но когда я пытаюсь использовать изображение URL показывает сломанный значок изображения.
вот фрагмент кода для клонирования файла (вроде, пришлось его немного почистить):
var src_file = .... <-- got it from user
filesystem.root.getFile("output.png", {create: true}, function(dest_file)
{
var reader = new FileReader();
reader.onerror = function() {alert("ERROR")};
reader.onload = function(e)
{
read_buffer = e.target;
dest_file.createWriter(function(fileWriter) {
var blob = new Blob([read_buffer.result], {type: 'application/octet-stream'}); // <-- also tried "image/png" etc..
fileWriter.onerror = function() {alert("ERROR2")};
fileWriter.onwriteend = function(writer)
{
alert("SUCCESS!");
};
fileWriter.write(blob);
}, function() {alert("ERROR3")});
};
reader.readAsBinaryString(src_file);
});
PS Я работаю на localhost, это проблема?
Спасибо!
1 ответ
Отвечая себе: следовало бы использовать readAsArrayBuffer() вместо readAsBinaryString()... что это была пустая трата времени:/