【问题标题】:Programmatically set the value of a type="file" input HTML element? [duplicate]以编程方式设置 type="file" 输入 HTML 元素的值? [复制]
【发布时间】:2011-08-26 15:56:30
【问题描述】:

注意:

下面的答案反映了 2009 年旧版浏览器的状态。现在,您实际上可以在 2017 年使用 JavaScript 动态/编程地设置文件输入元素的值。

有关详细信息以及演示,请参阅此问题中的答案:
How to set file input value programatically (i.e.: when drag-dropping files)?

我需要做的是以编程方式从使用 .NET WebBrowser(基本上是嵌入式 Internet Explorer)的应用程序的 javascript 代码向服务发送 POST 请求。此服务要求其中一个字段是“文件”。

如果我有文件的内容,例如字节数组(和不是文件的路径;我不是想从这里的用户那里窃取文件:))。

或者也许是一种显式创建和发送 POST 请求而不是动态创建 FORM 的方法?

我需要使用将在我的WebBrowser 中运行的 JavaScript 代码(想想 IE)。这可能吗?

【问题讨论】:

标签: javascript post


【解决方案1】:

很遗憾,这是不可能的,因为这将是一个安全问题。 Javascript 对文件输入字段的控制非常有限。否则人们可能会使用它来窃取用户计算机中的文件。

由于您可以控制浏览器,您可以使用普通的 HTTPWebRequest 发送文件,但不能在 JavaScript 中完成。

【讨论】:

  • 这是一个带有嵌入式网络浏览器的 .NET 应用程序...从技术上讲,您可以使用 HttpWebRequest 或者实际上只是直接通过 FTP 上传 :)
  • 即使我可以从我的 javascript 代码中访问文件的内容? (内容,而不仅仅是路径)。
  • 是的,我正在将其添加到我的答案中
  • 您需要查找为 File Post 发送数据的原始格式,然后自己构建它。
  • @jsoldi 如果您有权访问内容,并且它是文本的。您可以将内容读入变量中,然后将其作为字符串发布到服务器。
猜你喜欢
  • 2015-04-11
  • 2011-04-28
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2023-03-17
  • 1970-01-01
  • 2013-11-23
相关资源
最近更新 更多