无法构造'文件':当使用JSON.stringify()时,迭代器getter在chrome 60中无法调用

问题描述 投票:15回答:2

系统配置: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);然后它没有给出错误并在控制台中显示正确的对象。

javascript fileapi
2个回答
34
投票

在您的情况下,File构造函数签名不正确,第一个参数必须是:

ArrayBuffer,ArrayBufferView,Blob或DOMString对象的Array - 或任何此类对象的混合。这是编码为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"});

0
投票

我知道我迟到但我面临同样的问题所以我认为应该发布我的功能它将有助于将BLOB转换为FILE。谢谢

 imageCropped(event: ImageCroppedEvent) {
    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);
  }
© www.soinside.com 2019 - 2024. All rights reserved.