У меня есть <input type='file'>
в моей форме. Теперь я хочу сохранить выбранный файл в LocalFileSystem.PERSISTENT
.
Мой код для этого:
self.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
fs.root.getFile(file_name, { create: true, exclusive: false }, function (fileEntry) {
var reader = new FileReader();
reader.onloadend = function () {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {};
fileWriter.onerror = function (e) {};
dataObj = new Blob([reader.result], { type: 'text/plain' });
// freeze here
fileWriter.write(dataObj);
postMessage('ok');
});
};
reader.readAsDataURL($(file_id)[0].files[0]);
}, onErrorCreateFile);
}, onErrorLoadFs);
Но этот код останавливает мой пользовательский интерфейс на устройстве (ios, android) вверх до 10 секунд, когда файл 30 МБ. Я открыл для себя мир Web Workers , но нет доступа к LocalFileSystem
.
Как сохранить выбранный файл (<input type='file'>
) в моем LocalFileSystem
без зависаний интерфейса?