Safari和IE的File()构造函数是否有替代方案?

Joh*_* me 12 safari internet-explorer file filereader angularjs

我正在使用File()构造函数来创建用于将blob文件上载到服务器的文件对象.以下代码适用于Chrome,但Safari和Internet Explorer无效.

image_url = new File([blob],file_name,{type: mimeString});
Run Code Online (Sandbox Code Playgroud)

代码在此行中断开并在控制台中获取此错误"FileConstructor不是构造函数"(评估'new File([blob],file_name,{type:mimeString})')

使用FileReader API是替代方案,但我无法解决此问题.

小智 14

我建议使用blob api,我发现了同样的问题,我解决了这样的问题:

var html = <svg>whatever on svg </svg>
var fileName = "myfile.svg";
var blob = new Blob([html], {type: 'image/svg'});
blob.lastModifiedDate = new Date();
// var blobAttrs = {type: "image/svg"};
// var file = new File([html], fileName, blobAttrs);
var formData = new FormData();
formData.append("file",blob,fileName);
Run Code Online (Sandbox Code Playgroud)

它不是"文件",但您可以像使用它一样使用它.