我正在使用File()构造函数来创建用于将blob文件上载到服务器的文件对象。以下代码适用于Chrome,但Safari和Internet Explorer无效。
image_url = new File([blob],file_name,{type: mimeString});
代码在此行中断开并在控制台中出现此错误" FileConstructor不是构造函数" (评估'新文件([blob],file_name,{type:mimeString})')
使用FileReader API是替代方案,但我无法解决此问题。
答案 0 :(得分:12)
我建议使用blob api,我发现了同样的问题,我解决了这个问题:
reader.readline()
它不是“文件”,但您可以像使用它一样使用它。
答案 1 :(得分:2)
根据网络"我可以使用" Safari不支持new File()
构造函数。请参阅此链接http://caniuse.com/#feat=fileapi
所以我认为您必须使用FileReader或使用此处列出的某些polyfill https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills
特别是这个对你有用https://github.com/mailru/FileAPI(我自己没有使用它)
答案 2 :(得分:0)
如果可以使用ES6类:
class CustomFile extends Blob
{
constructor(blobParts, filename, options) {
super(blobParts, options);
this.name = filename || "";
if(options) {
this.lastModified = options.lastModified;
}
}
lastModified = 0;
name = "";
}
const blob = new Blob();
const fileObject = new CustomFile([blob],"myfile");
console.log(fileObject);
答案 3 :(得分:0)