Подтвердить что ты не робот

Не удалось создать файл "Файл": при использовании 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);, тогда он не дает ошибок и отображает правильный объект в консоли.

4b9b3361

Ответ 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);
  }