2010-09-13 145 views

回答

5

挂钩。

<form method="post" enctype="multipart/form-data"> 
    <input type="file" onchange="this.form.filename.value = this.value"> 
    <input type="text" name="filename"> 
</form> 

Jsfiddle demo。请注意,IE6/7错误地给出了完整路径,而其他浏览器正确地给出了文件名。

+0

MSIE应该只给文件名以及自IE 8以来。 – 2010-09-13 20:16:09

+0

@Pekka:*耸耸肩*,MSIE == MSIE :)我更新它。 – BalusC 2010-09-13 20:17:33

+0

@皮卡:我偷看你的个人资料。 Amazon.com Wishlist是否有效?有趣的想法:) – BalusC 2010-09-13 20:29:59

0

你无法不先存储在自己的服务器上的文件去做。

文件输入控制确实是而不是包含文件的数据。您的浏览器将它作为占位符提供给您,直到您通过POST表单提交提交文件数据。

如果你在文件路径之后,你也不能这么做(在现代浏览器中,正如Pekka所说)。浏览器不会将这些信息提供给客户端脚本。但是,它可能会提供文件名。

+1

我认为他只想复制文件路径,而不是其数据。 – 2010-09-13 20:12:53

+0

@Pekka:是的,我误读了那部分。见附录。 – palswim 2010-09-13 20:14:17

+0

我很确定这个值可以被读取,虽然没有写入。所以他感兴趣的是可行的。请参阅BalusC的答案。 – levik 2010-09-13 20:16:16

1

这应该是可能的创建一个新的文本输入元素并填充文件输入的.value属性。

但是,请注意,出于安全原因,所有现代浏览器仅在value属性中存储的文件名。您将无法获取所选文件的完整路径。

来源:上change事件的文件场的MSDN on IE8