在使用 PHP 的過程中,您在嘗試上傳多個檔案時遇到了障礙。讓我們探討如何透過深入研究提供的程式碼片段並解決問題來克服這項挑戰。
HTML 檔案具有一個帶有檔案輸入欄位的表單,允許進行多項選擇(多個=多個)。點選按鈕會觸發 sendfile() 函數,啟動上傳過程。 sendfile() 函數建立一個 FormData 物件並迭代選定的文件,將它們附加到資料負載中。然後利用 jQuery 的 ajax() 函數將資料傳送到 uploadfile.php 進行處理。
PHP 檔案(uploadfile.php)定義一個目標目錄,並嘗試逐一移動上傳的檔案。
提供的程式碼錯誤地嘗試一次移動每個上傳的文件,這適用於單一文件,但不適用於多個選擇。問題的關鍵在於 for 迴圈的建構。
適當的解決方法是使用更具包容性的 foreach 迴圈來迭代上傳的檔案。這種方法確保每個檔案都被處理並移動到目標目錄。
要實現這一點,需要對uploadfile.php 進行以下調整:
<code class="php">foreach ($_FILES['myfile']['name'] as $i => $name) { if (move_uploaded_file($_FILES['myfile']['tmp_name'][$i], $target . $name)) { echo 'Successfully copied'; } else { echo 'Sorry, could not copy'; } }</code>
這個精煉版本可以正確處理多個檔案透過迭代每個檔案的名稱和臨時路徑來移動文件,使它們能夠單獨移動。此循環確保每個選定的檔案都被考慮並移動到指定的目標目錄。
以上是以下是根據您的文章採用問題格式的一些文章標題: * **在 PHP 中上傳多個檔案:為什麼 `move_uploaded_file` 失敗,以及如何修復它? * **多文件上傳的詳細內容。更多資訊請關注PHP中文網其他相關文章!