我见过许多使用
的例子<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,因此我似乎需要从已知的文件路径创建新的Blob
或File
对象,但我无法做到弄清楚如何做到这一点。我不想创建一个新文件,只是现有文件中的一个对象。我认为这很简单,所以我希望我能错过一些简单的东西。谢谢!
答案 0 :(得分:1)
不,你不能这样做。用户必须标识要加载的文件(通过input type="file"
,拖放等)。没有用户的干预,您无法预先指定文件名,也无法启动文件加载。这将是一个巨大的安全漏洞。
您可以从服务器或其他服务器加载文件,这些服务器允许您通过跨源资源共享来源,但不能从用户的计算机加载。