在Web 開發領域,圖像庫、文件等任務通常需要上傳多個文件的能力管理系統等。本教學將引導您完成使用 PHP 和 jQuery 啟用多個檔案上傳的過程。
HTML 表單用作選擇要上傳的檔案的介面。在這裡,我們有一個類型為「file」的輸入字段,其中設定了「multiple」屬性以允許選擇多個檔案:
<input id="myfile" type="file" name="myfile" multiple=multiple/>
點擊「上傳」按鈕時,sendfile() 函數為透過onclick 事件處理程序觸發。
sendfile() 函式利用 jQuery 建構 FormData 物件。該物件允許包含表單資料(包括檔案)傳送到伺服器端腳本。每個選定的檔案都會附加到FormData 物件:
for (var i = 0, len = document.getElementById('myfile').files.length; i < len; i++) { fd.append("myfile", document.getElementById('myfile').files[i]); }
在伺服器端,uploadfile.php 腳本處理檔案上傳:
<code class="php">$target = "uploadfolder/"; // for($i=0; $i <count($_FILES['myfile']['name']); $i++){ if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target.$_FILES['myfile']['name'])) { echo 'Successfully copied'; }else{ echo 'Sorry, could not copy'; } // }
但是,此程式碼不完整,因為它缺少迭代多個檔案的循環。您需要實現所提供的正確答案中所示的循環。
在答案中提供的範例中,jQuery 程式碼和 HTML 結構是類似於上面不完整的程式碼。主要差異在於 load.php 腳本:
已實作循環來處理多個檔案。
<code class="php">foreach ($_FILES as $key) { if($key['error'] == UPLOAD_ERR_OK ){ $name = $key['name']; $temp = $key['tmp_name']; $size= ($key['size'] / 1000)."Kb"; move_uploaded_file($temp, $path . $name); echo " <div> <h1>File Name: $name</h1><br /> <h1>Size: $size</h1><br /> <hr> </div> "; }else{ echo $key['error']; } }
以上是如何用PHP和jQuery實作多個檔案上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!