php小編魚仔為您介紹如何在PHP中上傳多個影像。在網站開發中,經常需要實現批量上傳圖片的功能,為了提高用戶體驗和效率,上傳多個圖像是一個常見需求。 PHP提供了豐富的函數和技術來實現這項功能,包括使用表單、處理上傳檔案、循環處理多個檔案等。透過本文的指導,您將學會如何在PHP中輕鬆上傳多個圖像,為您的網站添加更多互動和創意元素。
為了使之成為可能,我們需要根據您建立程式碼庫的方式在我們的 HTML 文件或部分中指定表單操作,然後使用內建函數來處理該操作。
在本文中,我們將學習如何在PHP 中上傳多個圖像,這為我們提供了從表單輸入中指定所需文件、處理所有用戶選擇的文件以及上傳或移動到所需位置的上下文。
$_FILES
當使用者將任何輸入放入 HTML 表單時,我們使用 POST 方法將任何輸入(從文字到檔案)傳送到我們的 PHP 應用程式所在的伺服器端。
<fORM method='post' action='' enctype='multipart/form-data'>
enctype='multipart/form-data'
部分指定表單資料的編碼方式,當我們在表單中使用檔案上傳時是必需的。
對於文件上傳,我們需要輸入類型文件和指定名稱(可以是您決定的任何名稱),文件。
<input type="file" name="file" id="file">
對於多文件上傳,我們仍然需要輸入類型文件,但現在不同的指定名稱 file[]
和新增的屬性 multiple。新增 []
表示輸入欄位可以處理多個檔案。
<input type="file" name="files[]" multiple/>
在伺服器端,全域變數 $_FILES
是一個關聯陣列,其中包含透過 Http POST 方法上傳的文件,使我們能夠適當地處理文件。
<?php $_FILES["files"]
現在我們了解了基礎知識,我們需要上傳多個文件。讓我們建立 PHP 表單來上傳多張圖片。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Multiple Image Upload</title> </head> <body> <form method="post" enctype="multipart/form-data" name="formUploadFile"> <label>Select image(s) to upload:</label> <input type="file" name="files[]" multiple="multiple" /> <input type="submit" value="Upload File" name="imgSubmit" /> </form> <?php if (isset($_POST["imgSubmit"])) { $在 PHP 中上傳多個圖像s = []; $uploadedFiles = []; $extension = array("jpeg", "jpg", "png"); $UploadFolder = "images"; $counter = 0; foreach ($_FILES["files"]["tmp_name"] as $key => $tmp_name) { $temp = $_FILES["files"]["tmp_name"][$key]; $name = $_FILES["files"]["name"][$key]; if (empty($temp)) { break; } $counter++; $UploadOk = true; $ext = pathinfo($name, PATHINFO_EXTENSION); if (in_array($ext, $extension) == false) { $UploadOk = false; array_push($在 PHP 中上傳多個圖像s, $name . " isn't an image."); } if ($UploadOk == true) { move_uploaded_file($temp, $UploadFolder . "/" . $name); array_push($uploadedFiles, $name); } } if ($counter > 0) { if (count($在 PHP 中上傳多個圖像s) > 0) { echo "<b>Errors:</b>"; echo "<br/><ul>"; foreach ($在 PHP 中上傳多個圖像s as $在 PHP 中上傳多個圖像) { echo "<li>" . $在 PHP 中上傳多個圖像 . "</li>"; } echo "</ul><br/>"; } if (count($uploadedFiles) > 0) { echo "<b>Uploaded Files:</b>"; echo "<br/><ul>"; foreach ($uploadedFiles as $fileName) { echo "<li>" . $fileName . "</li>"; } echo "</ul><br/>"; echo count($uploadedFiles) . " iamge(s) are successfully uploaded."; } } else { echo "Please, Select image(s) to upload."; } } ?> </body> </html>
檢查 $_POST[]
變數是否使用 isset()
函數設置,初始化重要變量,並設定檔案上傳所需的副檔名。
if (isset($_POST["imgSubmit"])) { $在 PHP 中上傳多個圖像s = []; $uploadedFiles = []; $extension = array("jpeg", "jpg", "png"); $UploadFolder = "images";
之後,我們循環遍歷已透過$_FILES[]
變數處理過的多個映像,然後使用pathinfo()
檢查副檔名,如果為真,我們將映像移至指定資料夾$UploadFolder 使用move_uploaded_file()
函數,並將映像的名稱推送到$uploadedFiles 變數。
foreach ($_FILES["files"]["tmp_name"] as $key => $tmp_name) { $temp = $_FILES["files"]["tmp_name"][$key]; $name = $_FILES["files"]["name"][$key]; if (empty($temp)) { break; } $counter++; $UploadOk = true; $ext = pathinfo($name, PATHINFO_EXTENSION); if (in_array($ext, $extension) == false) { $UploadOk = false; array_push($在 PHP 中上傳多個圖像s, $name . " isn't an image."); } if ($UploadOk == true) { move_uploaded_file($temp, $UploadFolder . "/" . $name); array_push($uploadedFiles, $name); } }
最後,我們顯示了存在的錯誤和上傳的檔案。
if ($counter > 0) { if (count($在 PHP 中上傳多個圖像s) > 0) { echo "<b>Errors:</b>"; echo "<br/><ul>"; foreach ($在 PHP 中上傳多個圖像s as $在 PHP 中上傳多個圖像) { echo "<li>" . $在 PHP 中上傳多個圖像 . "</li>"; } echo "</ul><br/>"; } if (count($uploadedFiles) > 0) { echo "<b>Uploaded Files:</b>"; echo "<br/><ul>"; foreach ($uploadedFiles as $fileName) { echo "<li>" . $fileName . "</li>"; } echo "</ul><br/>"; echo count($uploadedFiles) . " image(s) are successfully uploaded."; } } else { echo "Please, Select image(s) to upload."; }
向瀏覽器提供的 PHP 檔案。
選擇圖像並上傳圖像。
然後,顯示上傳的檔案。
上傳的圖片:
如果您選擇的檔案不是圖像,則會出現錯誤。
以上是在 PHP 中上傳多個圖像的詳細內容。更多資訊請關注PHP中文網其他相關文章!