将输入文件值设置为第二个输入文件

时间:2013-05-28 13:57:25

标签: javascript html

  

注意:

     

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

     

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

我有2 input type="file"

<input type="file" id="attach_file_1" name="attach_file_1" />
<input type="file" id="attach_file_2" name="attach_file_2" />

attach_file_1“选择”文件后,可以使用javascript为attach_file_2设置相同的值吗?

4 个答案:

答案 0 :(得分:10)

我认为你不能。我认为这是一个安全问题。您无法设置文件输入类型的值。否则,您可以隐藏文件输入元素并在用户不知情的情况下将文件上传到您的服务器。

答案 1 :(得分:2)

实现所需功能的一种方法是在表单中添加标记,并在要将文件信息复制到第二个输入时将其标记为true。然后,在服务器上,您可以检查该标志并使用第一个输入的文件来执行您想要对第二个输入执行的任何操作。

答案 2 :(得分:1)

鉴于你想要另一个具有相同值的输入,它似乎可以使用.cloneNode(),至少在Firefox中是这样。到目前为止,Chrome的行为方式不同。

http://jsbin.com/ohafom/2/

另请注意,我实际上没有测试过上传。据我所知,Firefox只发送一个。克隆工作仍然很有趣。

答案 3 :(得分:0)

我能想出实现这一目标的唯一方法(但只能将文件从一个“传递”到另一个)是动态切换输入字段位置和名称,以便文件看起来像是从一个传递到另一个另一个。

否则,这是安全问题,大多数浏览器根本不允许您操作文件输入。