2011-06-17 63 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\...。你可以做的最好的就是文件名。