打字稿/ Javascript加载现有文件而无需用户交互

时间:2018-02-21 17:52:04

标签: javascript file typescript

我见过许多使用

的例子
<input type="file" id="file"/>

然后像

let $img: any = document.querySelector('#file');

if (typeof (FileReader) !== 'undefined') {
    let reader = new FileReader();

    reader.onload = (e: any) => {
      this.pdfSrc = e.target.result;
    };

    reader.readAsArrayBuffer($img.files[0]);
}

但是,我知道文件路径,我只想在没有任何用户交互的情况下获得它。在示例中,$img.files[0]是Blob,因此我似乎需要从已知的文件路径创建新的BlobFile对象,但我无法做到弄清楚如何做到这一点。我不想创建一个新文件,只是现有文件中的一个对象。我认为这很简单,所以我希望我能错过一些简单的东西。谢谢!

1 个答案:

答案 0 :(得分:1)

不,你不能这样做。用户必须标识要加载的文件(通过input type="file",拖放等)。没有用户的干预,您无法预先指定文件名,也无法启动文件加载。这将是一个巨大的安全漏洞。

您可以从服务器或其他服务器加载文件,这些服务器允许您通过跨源资源共享来源,但不能从用户的计算机加载。