【发布时间】:2021-12-05 22:50:25
【问题描述】:
我需要使用 JavaScript 将特定文件附加到我的 FormData 对象。
var form = new FormData();
form.append("input", '{ ... some json ... }');
form.append("files", "/C:/My/Path/File.txt");
我不想通过输入按钮选择文件。
我创建的所有示例都是这样做的:
var form = new FormData();
form.append("input", '{ ... some json ... }');
form.append("files", input.Files[0], "/C:/My/Path/File.txt");
所以我认为我必须将该文件加载到 blob 或文件对象中。但我不明白。
我能做到吗?谢谢!
【问题讨论】:
-
我是这么想的.. var blob = new Blob([content], { type: "text/xml"}); formData.append("webmasterfile", blob);你可以在这里查看文档developer.mozilla.org/en-US/docs/Web/API/FormData/append
-
“我不想通过输入按钮选择文件。”:所以你要求用户信任你不要上传他们电脑上的其他任何东西。出于安全目的,必须进行一些用户交互。
-
明确一点:你不能这样做。网站可以通过这种方式从用户的硬盘中抓取任意文件。
-
我了解安全问题。我需要自动化一个 api 调用。如果我不能这样做,我应该尝试另一种语言吗?
-
语言无关紧要。 浏览器不允许您在未经用户授权的情况下从本地系统加载文件。
标签: javascript jquery api form-data