Я работаю над добавлением изображений на страницу, делаю что-то с коллекцией добавленных изображений (предварительный просмотр и т. Д.) И, наконец, я хочу, чтобы они были сохранены. Все круто, пока объект files
не будет использован для показа или сохранения фотографии.
var input = document.getElementById('files');
var files = input.files;
, так как это массив объектов только для чтения - им нельзя свободно манипулировать. Для работы с этим дружественным массивом я отобразил его так:
var addedFiles = added(files);
function added(from) {
return $.map(from, function (i) {
var x = { lastModified: i.lastModified, lastModifiedDate: i.lastModifiedDate, name: i.name, size: i.size, type: i.type, webkitRelativePath: i.webkitRelativePath }
return x;
});
}
... затем сделайте что-нибудь с этими файлами - и я хочу просмотреть, а затем сохранить - но, например, во время предварительного просмотра я получаю сообщение об ошибке:
Uncaught TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.
function readImage(file) {
var reader = new FileReader();
reader.addEventListener("load", function () {
var image = new Image();
image.addEventListener("load", function () {
preview.innerHTML += drawHtml(this, file);
window.URL.revokeObjectURL(image.src); //blob version
});
image.src = reader.result; //file version
image.src = window.URL.createObjectURL(file) //blob version
});
reader.readAsDataURL(file); // here fire the error
}
Когда я проходил тестирование изначально file
в соответствии с приведенным выше кодом, все работает.
Вопрос:
Как создать пользовательский объект obj (в моем случае массив obj), который можно разобрать в file
obj
P.S. В проекте я использую jquery и javascript