我正在使用想要通过HTML文件系统加载文件的第三方库,如:
<input id="fileupload" type="file" onchange="LoadAndDisplayFile(this.files[0])">
这很好用,除了我想将一个url传递给存储在服务器上的文件,而不是让用户上传文件。
我尝试使用:
var myFile = new File ("path/to/file");
希望我能够将myFile
传递给LoadAndDisplayFile()
但我收到以下错误:
未捕获的TypeError:无法构造“文件”:需要2个参数,但只有1个存在。
我确定这是一个菜鸟问题,但我在这里错过了什么?
答案 0 :(得分:2)
您无法创建仅提供URL的File对象。
正确的方法是通过Http请求获取文件并读取它,如下所示:
var blob = null
var xhr = new XMLHttpRequest()
xhr.open("GET", "path/to/file")
xhr.responseType = "blob"
xhr.onload = function()
{
blob = xhr.response
LoadAndDisplayFile(blob)
}
xhr.send()
答案 1 :(得分:0)
我正在处理相同的错误,花了一些时间后,使用以下代码创建了新的File对象
new File(
[""],this.name,{
lastModified: 1605685839310,
lastModifiedDate: new Date(),
size: this.size,
type: "",
webkitRelativePath: ""
});