javascript从URL创建文件

时间:2016-02-05 08:58:20

标签: javascript

我正在使用想要通过HTML文件系统加载文件的第三方库,如:

<input id="fileupload" type="file" onchange="LoadAndDisplayFile(this.files[0])">

这很好用,除了我想将一个url传递给存储在服务器上的文件,而不是让用户上传文件。

我尝试使用:

var myFile = new File ("path/to/file");

希望我能够将myFile传递给LoadAndDisplayFile() 但我收到以下错误:

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

我确定这是一个菜鸟问题,但我在这里错过了什么?

2 个答案:

答案 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: ""
                            });