Instantiate File object in Microsoft Edge
Currently IE11, and Edge support the FileAPI but not the File constructor.
In the link that you posted to caniuse.com
, there are notes for IE and Edge stating that the File constructor is not supported. I encountered the same issue and my work around was to use Blob
instead of File
, and then set the type of the blob.
var blob = new Blob([blobContent], {type : 'image/jpeg'});
This is what I did and works
// to change Blob to File
private blobToFile(theBlob: Blob, fileName: string): File {
const b: any = theBlob;
b.lastModifiedDate = new Date();
b.name = fileName;
return b as File;
}
let file;
if (!navigator.msSaveBlob) { // detect if not Edge
file = new File([b], document.originalName, { type: document.mimeType });
} else {
file = new Blob([b], { type: document.mimeType });
file = this.blobToFile(file, document.originalName);
}
Now can continue by variable file as a File in Edge or other browsers.