javascript从URL创建文件

Adr*_*lor 11 javascript

我正在使用想要通过 HTML 文件系统加载文件的 3rd 方库,如下所示:

<input id="fileupload" type="file" onchange="LoadAndDisplayFile(this.files[0])">
Run Code Online (Sandbox Code Playgroud)

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

我尝试使用:

var myFile = new File ("path/to/file");
Run Code Online (Sandbox Code Playgroud)

希望我能够myFile进入,LoadAndDisplayFile() 但我收到以下错误:

未捕获的类型错误:无法构造“文件”:需要 2 个参数,但只有 1 个参数。

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

Mij*_*amo 9

您不能创建只提供 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()
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答。为了使您的解决方案起作用,我只需要使用以下方法从 blob 创建一个新的 File 对象:new File([blob], blob),然后 LoadAndDisplayFile(file) (2认同)