Преобразование Blob в список файлов в javascript
Я использую следующий код для скрытия изображения холста в blob.
Чтобы преобразовать blob-объект в объект file / filelist, мне нужно передать этот файловый список обработчику файлов.
Mycode:
var canvas1 = document.getElementById("preview");
var theImage = document.getElementById("blahProfile");
theImage.src = canvas1.toDataURL();
var blob = dataURItoBlob(theImage.src);
Есть ли способ преобразовать этот большой двоичный объект в файловый объект?
1 ответ:
Fileобъекты содержат больше информации, чем объектыBlob, с такими свойствами, какlastModifiedDateиfileName. Не имеет смысла, чтобы ваши данные изображения имели одно из этих свойств, потому что это не файл.Я предполагаю, что вы
FileListобработчик пользователей aFileReaderдля чтенияFileобъектов. Однако методыFileReaderтакже могут обрабатывать объектыBlob(посколькуFileявляется подклассомBlob). Таким образом, вы можете либо:
Извлеките ваш код
FileReaderв отдельную функцию, которая принимаетBlobилиFile(и, возможно, функция обратного вызова разрешения) amd вызовет эту функцию при обработке каждого из вашихFileListэлементов и при обработке вашихBlobданных изображенияЕсли ваш обработчик
FileListобращается только к элементам списка по индексу (например,myFileList[i]), то вы можете подделатьFileListпросто с помощью массиваBlobs. например, эта функция работает либо с реальнымFileList, либо с массивомBlobs:function processFileList(list) { var reader = new FileReader(); reader.readAsText(list[0]); reader.addEventListener("loadend", function() { console.log(reader.result); }); }