如何在JavaScript中实例化File对象?

2022-08-30 01:44:24

JavaScript 中有一个 File 对象。我想实例化一个用于测试目的。

我已经尝试过,但是我得到一个“非法构造函数”错误。new File()

是否可以创建对象?File


文件对象参考:https://developer.mozilla.org/en/DOM/File


答案 1

根据 W3C 文件 API 规范,文件构造函数需要 2 个(或 3 个)参数。

因此,要创建一个空文件,请执行以下操作:

var f = new File([""], "filename");
  • 第一个参数是作为文本行数组提供的数据;
  • 第二个参数是文件名 ;
  • 第三个参数如下所示:

    var f = new File([""], "filename.txt", {type: "text/plain", lastModified: date})
    

它适用于FireFox,Chrome和Opera,但不适用于Safari或IE / Edge。


答案 2

现在你可以!

var parts = [
  new Blob(['you construct a file...'], {type: 'text/plain'}),
  ' Same way as you do with blob',
  new Uint16Array([33])
];

// Construct a file
var file = new File(parts, 'sample.txt', {
    lastModified: new Date(0), // optional - default = now
    type: "overide/mimetype" // optional - default = ''
});

var fr = new FileReader();

fr.onload = function(evt){
   document.body.innerHTML = evt.target.result + "<br><a href="+URL.createObjectURL(file)+" download=" + file.name + ">Download " + file.name + "</a><br>type: "+file.type+"<br>last modified: "+ file.lastModifiedDate
}

fr.readAsText(file);