从URL创建文件的javascript

从URL创建文件的javascript,javascript,Javascript,我使用的第三方库希望通过HTML文件系统加载到文件中,如: <input id="fileupload" type="file" onchange="LoadAndDisplayFile(this.files[0])"> 希望我能将myFile传递到LoadAndDisplayFile() 但我得到了以下错误: 未捕获的TypeError:构造“文件”失败:需要2个参数,但只存在1个 我肯定这是一个noob问题,但我在这里遗漏了什么?您不能创建一个只提供URL的文件对象 正确的方法

我使用的第三方库希望通过HTML文件系统加载到文件中,如:

<input id="fileupload" type="file" onchange="LoadAndDisplayFile(this.files[0])">
希望我能将
myFile
传递到
LoadAndDisplayFile()
但我得到了以下错误:

未捕获的TypeError:构造“文件”失败:需要2个参数,但只存在1个


我肯定这是一个noob问题,但我在这里遗漏了什么?

您不能创建一个只提供URL的文件对象

正确的方法是通过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()

我正在处理相同的错误,在花时间之后,我使用下面的代码创建了新的文件对象

                              new File(
                                [""],this.name,{
                                lastModified: 1605685839310,
                                lastModifiedDate: new Date(),
                                size: this.size,
                                type: "",
                                webkitRelativePath: ""
                            });

取决于“第三方”脚本的功能?
Uncaught TypeError:构造“文件”失败:需要2个参数,但只存在1个。
那么,请传递2个参数,而不是1个参数以获得答案。为了使您的解决方案有效,我只需使用:new File([blob],blob)从blob创建一个新的File对象,然后LoadAndDisplayFile(File)好的,我认为File对象的创建发生在LoadAndDisplayFile函数中。
                              new File(
                                [""],this.name,{
                                lastModified: 1605685839310,
                                lastModifiedDate: new Date(),
                                size: this.size,
                                type: "",
                                webkitRelativePath: ""
                            });