Не удалось создать файл "Файл": при использовании JSON.stringify()
Конфигурация системы: macOS Sierra 10.12.5; хром 60;
Я пытаюсь загрузить данные JSON (объект ответа) в виде json файла, но когда я попытался добиться этого с помощью объекта File() браузера, он дает ошибку
Failed to construct 'File': Iterator getter is not callable.
ниже мой код
//`inputData` is the valid response getting from $http.get
var stringifyData = JSON.stringify(inputData);
console.log("stringifyData ", stringifyData);
var file = new File(blob, "filename.json", {type: "text/json;charset=utf-8"});
console.log("file", file);
В чем проблема и почему я получаю эту ошибку. когда я использую JSON.stringify(inputData, undefined, 4);
, тогда он не дает ошибок и отображает правильный объект в консоли.
Ответы
Ответ 1
В вашем случае File
подпись конструктора неверна, первый аргумент должен быть:
Массив объектов ArrayBuffer, ArrayBufferView, Blob или DOMString - или сочетание любых таких объектов. Это содержимое файла, закодированное как UTF-8.
https://developer.mozilla.org/en-US/docs/Web/API/File/File#Parameters
new File([blob], "filename.json", {type: "text/json;charset=utf-8"});
Ответ 2
Я знаю, что опоздал, но столкнулся с той же проблемой, поэтому я подумал, что если я опубликую свою функцию, это поможет конвертировать BLOB в FILE. Спасибо
imageCropped(event: ImageCroppedEvent) {
this.croppedImage = event.base64;
this.Files = event.file;
let fileName = new Date().getTime() + ".jpeg";
let filedata = new File([this.Files], fileName, {
type: "image/jpeg",
lastModified: Date.now()
});
console.log(filedata);
}