【问题标题】:How to append a specific file to FormData with Javascript?如何使用 Javascript 将特定文件附加到 FormData?
【发布时间】: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


【解决方案1】:

根据@Andy 评论和这篇帖子https://stackoverflow.com/a/3014623/8037813,实际上由于安全问题而无法做到这一点。

不要浪费时间尝试去做。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2017-12-25
    • 2018-11-02
    • 2019-09-21
    • 2015-11-12
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多