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()... что это была пустая трата времени:/

Другие вопросы по тегам