Reputation: 54050
System Configuration : macOS Sierra 10.12.5 ; chrome 60;
I am trying to download JSON data ( response object ) as a json file but when I tried to achive this using browser File() object , it gives error
Failed to construct 'File': Iterator getter is not callable.
below is my code
//`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);
what is the issue and why I am getting this error. when I use JSON.stringify(inputData, undefined, 4);
then it gives no error and displays proper object in the console.
Upvotes: 43
Views: 59271
Reputation: 1154
I know I am late but I faced the same issue, here's my solution. It converts Blob
to 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);
}
Upvotes: 1
Reputation: 44967
In your case File
constructor signature is incorrect, the first argument must be:
An Array of ArrayBuffer, ArrayBufferView, Blob, or DOMString objects — or a mix of any such objects. This is the file content encoded as 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"});
Upvotes: 80