2010-09-13 146 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