我什至不知道这是否可能,但有没有一种方法可以将输入文件字段中所选文件的值带到输入文本字段?
像这样:
挂钩change
文件字段的事件。
<form method="post" enctype="multipart/form-data">
<input type="file" onchange="this.form.filename.value = this.value">
<input type="text" name="filename">
</form>
Jsfiddle 演示。请注意,IE6/7 错误地给出了完整路径,而其他浏览器正确地只给出了文件名。
这应该可以通过创建一个新的文本输入元素并使用.value
文件输入的属性填充它来实现。
但是请注意,出于安全原因,所有现代浏览器仅将文件名存储在属性中。value
您将无法获得所选文件的完整路径。
资料来源:IE8 上的 MSDN
如果不先将文件存储在您自己的服务器上,您就无法做到这一点。
文件输入控件不包含文件的数据。在您通过 POST 表单提交提交文件数据之前,您的浏览器会将其作为占位符提供给您。
如果你在文件的路径之后,你也不能这样做(在现代浏览器中,正如 Pekka 所说)。浏览器不会将该信息提供给客户端脚本。但是,它可能会提供文件名。