2011-06-17 64 views
2

我有一个表单上传jQuery在文本输入中写入

我需要一个jQuery函数,它会在隐藏文本输入中写入输入文件中写入的内容。

所以我必须:

<input class="addFile" id="field2" name="fileLyric" type="file" /> 

不管会不会有由上传(显然的文件路径)被写入应然后自动写入一个隐藏的文本输入

<input id="field2hidden" name="fileLyrichidden" type="text" style="display:none"/> 

是否有办法为了达成这个?

谢谢!

+1

由于安全原因,您无法获取整个文件路径,但是您可以在隐藏字段中获取文件名及其扩展名。 – abhijit 2011-06-17 07:57:42

回答

8

这将做到这一点的路径,但因为其他已经说了,这会不会是出于安全原因的完整路径。

如果用户选择了一个文件添加更改侦听器,因此该值将被更新。

$('#field2').change(function() { 
    $('#field2hidden').val($(this).val()); 
}); 

这里是演示一个jsFiddle。试试吧在不同的眉毛你会看到你的路径。

2

您不能从输入框中获取文件的实际路径。大多数浏览器会放置一个虚假的路径,以至于无法使用它。这是浏览器的安全功能。

2
$('#field2hidden').val ($('#field2').val()) 

难道不是这样吗?

编辑:它会得到的文件名,但路径部分故意模糊。你不能(或者至少不应该)能够在javascript中获得完整的路径,因为它可能暴露关于用户文件系统的信息。

1

你不能可靠取得用于上传文件(Chrome会说的路径是C:\fakepath\...。你可以做的最好的就是文件名。