2017-06-17 97 views
-1

用戶點擊上傳器多次上傳多個文件(例如a.txt,b.txt,c.txt),但服務器只能接收最後一個文件(c.txt)。還有什麼需要實現多個文件上傳?在輸入類型中選擇多個文件時只上傳一個文件

<form action="storeArticle" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file[]" multiple > 
    <input type="submit" name="submit" class="submit" id="submit" value="submit" /> 
</form> 

==========
我想實現像https://stackoverflow.com/questions/ask。用戶可以多次點擊圖像圖標,最後所有的圖像將被正確發送到服務器。

回答

0

當你說他們多次點擊上傳者,你的意思是不得不每次打開文件資源管理器來添加一個文件?如果是這樣,那麼這將導致它丟失先前選擇的其他文件。

解決這個問題的方法是讓用戶在只打開一次文件瀏覽器時按住ctrl/cmd並單擊他們想要的每個文件。

文件輸入甚至在打開文件資源管理器時刪除選定的文件,然後按取消。

編輯

只是一個想法,我在手機上,所以我不能對此進行測試,但也許你可以玩它...

有一個輸入字段將是從頭到尾。當他們選擇他們的第一個文件時,製作按鈕(最好使用<label>)他們點擊不再打開該文件輸入。相反,附加一個動態文件輸入並使標籤的for屬性等於動態添加的文件輸入。添加動態輸入後,爲其創建一個偵聽器,以便用戶在該新輸入中選擇一個文件時將其附加到原始input.files數組。一旦發生這種情況,進程將重新開始,動態輸入處理文件選擇並在選擇文件時將其傳遞到原始輸入。

最好隱藏實際choose file按鈕的原因是因爲它有時可能有點不一致。相反,使用帶有輸入元素id的標籤元素作爲標籤的屬性,可以確保單擊標籤將集中文件上載字段。

+0

我已向我的問題添加了詳細信息。 – user7328234

+0

好的,保存文件直到點擊提交按鈕並一次上傳全部文件?我不相信有一種方法可以做到這一點,因爲當您使用PHP上傳文件時,文件輸入必須能夠訪問實際的文件。你需要tmp文件給你的服務器映像。我相信文件輸入具有這種信息的唯一方式是如果圖像在其文件數組內。 – SidTheBeard

+0

@SSidTheBeard除了文件輸入外,是否有任何方法通過多次單擊相同的圖標來保留所選文件(如https://stackoverflow.com/questions/ask),然後將所有文件發送到服務器。 – user7328234

0
To upload multiple files you have to select multiple files at once by pressing on ctrl(windows) or cmd(mac) button and then press submit button. 
I think in your case you have clicked the uploader button multiple times and each time you have selected only on file and in the end you have clicked the submit button so it will upload only the last file you have selected. 
0

我打算將此添加爲評論,但我不能。

您是否嘗試過克隆輸入並將其添加到表單中?

然後,當用戶選擇一個文件,你可以添加新的輸入,添加新的輸入並隱藏「填充」的輸入,或者添加新的輸入並將「填充的」標記爲只讀(你會想添加一些方法來刪除它們)。

相關問題