2011-04-12 23 views
7

我有這個input類型"file",我想更改它的files列表。例如:如何更改文件輸入的文件列表

<input type = "file" id = "fileinput" /> 
<script type = "text/javascript> 
    document.getElementById("fileinput").files = [10]; 
</script> 

的問題是,fileinput元素的files列表未設置。我該怎麼做?

+0

你不能。由於明顯的安全原因,它是隻讀的。 – 2011-04-12 09:00:32

+0

我明白了,那麼我不能允許它通過多次點擊來上傳多個文件呢? – dave 2011-04-12 09:02:26

+0

@dave HTML5允許選擇多個文件,但您仍然無法決定這些文件是什麼。 – 2011-04-12 09:03:18

回答

14

出於安全原因,瀏覽器阻止JavaScript更改將要上傳的文件:只有用戶可以通過用戶界面選擇文件。這是爲了防止惡意腳本上傳/etc/passwd,例如,用戶不知道。

一個例外是調用窗體上的「重置」將清除文件或文件列表,但不能以編程方式添加。

+4

那麼,如何多次點擊多個文件到文件輸入的文件列表? – dave 2011-04-12 09:04:01

+0

@odrm你不能將本地*真實*文件添加到文件列表中,但添加'File'或'Blob'沒有任何問題。我可以想象一個能夠做到這一點並有幫助的用戶腳本。 – 2014-12-03 02:14:07

+0

@TomášZato我不認爲你可以,因爲瀏覽器如何知道文件的來源,如果它是由程序創建或從用戶被盜? – atas 2017-03-14 21:29:24

-1

你想要的是使用input元素上的multiple屬性。這樣,在較新的瀏覽器中,用戶將能夠選擇要上傳的多個文件。