Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript/Javascript加载现有文件而无需用户交互_Javascript_File_Typescript - Fatal编程技术网

Typescript/Javascript加载现有文件而无需用户交互

Typescript/Javascript加载现有文件而无需用户交互,javascript,file,typescript,Javascript,File,Typescript,我已经看到了许多利用 <input type="file" id="file"/> 但是,我知道文件路径,我只想在没有任何用户交互的情况下得到它。在本例中,$img.files[0]是一个Blob,因此我似乎需要从已知的文件路径创建一个新的Blob或File对象,但我不知道如何做。我不想创建新文件,只想从现有文件创建一个对象。我认为这将是非常直接的,所以我希望我只是错过了一些简单的东西。谢谢 不,你不能那样做。用户必须识别要加载的文件(通过输入type=“file”、拖放等)。没有

我已经看到了许多利用

<input type="file" id="file"/>

但是,我知道文件路径,我只想在没有任何用户交互的情况下得到它。在本例中,
$img.files[0]
是一个Blob,因此我似乎需要从已知的文件路径创建一个新的
Blob
File
对象,但我不知道如何做。我不想创建新文件,只想从现有文件创建一个对象。我认为这将是非常直接的,所以我希望我只是错过了一些简单的东西。谢谢

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


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

如果浏览器允许javascripts加载它喜欢的任何文件,听起来会是一个安全漏洞,不是吗?如果用户不选择文件,就无法选择它。因此,听起来正确的方法是让javascript从服务器加载文件。我今天的搜索功能一定很弱。我肯定这个问题我已经见过十几次了;但是没有找到他们。希望其他人会。
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]);
}