以编程方式设置type =“file”输入HTML元素的值?

时间:2011-05-16 18:11:52

标签: javascript post

  

注意:

     

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

     

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

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

那么,是否有任何方法可以在表单中设置“文件”输入的值,因为我有文件的内容,例如在一个字节数组中(和不是文件的路径;我不是试图从用户那里窃取文件:))。

或许是一种明确创建和发送POST请求而不是动态创建FORM的方法?

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

1 个答案:

答案 0 :(得分:9)

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

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