php小編魚(yú)仔為您介紹如何在php中上傳多個(gè)圖像。在網(wǎng)站開(kāi)發(fā)中,經(jīng)常需要實(shí)現(xiàn)批量上傳圖片的功能,為了提高用戶(hù)體驗(yàn)和效率,上傳多個(gè)圖像是一個(gè)常見(jiàn)需求。php提供了豐富的函數(shù)和技術(shù)來(lái)實(shí)現(xiàn)這一功能,包括使用表單、處理上傳文件、循環(huán)處理多個(gè)文件等。通過(guò)本文的指導(dǎo),您將學(xué)會(huì)如何在php中輕松上傳多個(gè)圖像,為您的網(wǎng)站添加更多互動(dòng)和創(chuàng)意元素。
為了使之成為可能,我們需要根據(jù)您構(gòu)建代碼庫(kù)的方式在我們的 HTML 文件或部分中指定表單操作,然后使用內(nèi)置函數(shù)來(lái)處理該操作。
在本文中,我們將學(xué)習(xí)如何在 PHP 中上傳多個(gè)圖像,這為我們提供了從表單輸入中指定所需文件、處理所有用戶(hù)選擇的文件以及上傳或移動(dòng)到所需位置的上下文。
了解 PHP 中多個(gè)文件上傳的表單操作和 $_FILES
當(dāng)用戶(hù)將任何輸入放入 HTML 表單時(shí),我們使用 POST 方法將任何輸入(從文本到文件)發(fā)送到我們的 PHP 應(yīng)用程序所在的服務(wù)器端。
<fORM method='post' action='' enctype='multipart/form-data'>
登錄后復(fù)制
enctype='multipart/form-data'
部分指定表單數(shù)據(jù)的編碼方式,當(dāng)我們?cè)诒韱沃惺褂梦募蟼鲿r(shí)是必需的。
對(duì)于文件上傳,我們需要輸入類(lèi)型文件和指定名稱(chēng)(可以是您決定的任何名稱(chēng)),文件。
<input type="file" name="file" id="file">
登錄后復(fù)制
對(duì)于多文件上傳,我們?nèi)匀恍枰斎腩?lèi)型文件,但現(xiàn)在不同的指定名稱(chēng) file[]
和添加的屬性 multiple。 添加 []
表示輸入字段可以處理多個(gè)文件。
<input type="file" name="files[]" multiple/>
登錄后復(fù)制
在服務(wù)器端,全局變量 $_FILES
是一個(gè)關(guān)聯(lián)數(shù)組,其中包含通過(guò) Http POST 方法上傳的文件,使我們能夠適當(dāng)?shù)靥幚砦募?/p>
<?php $_FILES["files"]
登錄后復(fù)制
使用 move_uploaded_file() 在 PHP 中上傳多張圖片
現(xiàn)在我們了解了基礎(chǔ)知識(shí),我們需要上傳多個(gè)文件。 讓我們創(chuàng)建 PHP 表單來(lái)上傳多張圖片。
<!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"])) { $errors = []; $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($errors, $name . " isn't an image."); } if ($UploadOk == true) { move_uploaded_file($temp, $UploadFolder . "/" . $name); array_push($uploadedFiles, $name); } } if ($counter > 0) { if (count($errors) > 0) { echo "<b>Errors:</b>"; echo "<br/><ul>"; foreach ($errors as $error) { echo "<li>" . $error . "</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>
登錄后復(fù)制
檢查 $_POST[]
變量是否使用 isset()
函數(shù)設(shè)置,初始化重要變量,并設(shè)置文件上傳所需的擴(kuò)展名。
if (isset($_POST["imgSubmit"])) { $errors = []; $uploadedFiles = []; $extension = array("jpeg", "jpg", "png"); $UploadFolder = "images";
登錄后復(fù)制
之后,我們循環(huán)遍歷已通過(guò) $_FILES[]
變量處理過(guò)的多個(gè)圖像,然后使用 pathinfo()
檢查擴(kuò)展名,如果為真,我們將圖像移動(dòng)到指定文件夾 $UploadFolder 使用 move_uploaded_file()
函數(shù),并將圖像的名稱(chēng)推送到 $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($errors, $name . " isn't an image."); } if ($UploadOk == true) { move_uploaded_file($temp, $UploadFolder . "/" . $name); array_push($uploadedFiles, $name); } }
登錄后復(fù)制
最后,我們顯示了存在的錯(cuò)誤和上傳的文件。
if ($counter > 0) { if (count($errors) > 0) { echo "<b>Errors:</b>"; echo "<br/><ul>"; foreach ($errors as $error) { echo "<li>" . $error . "</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."; }
登錄后復(fù)制
向?yàn)g覽器提供的 PHP 文件。
選擇圖像并上傳圖像。
然后,顯示上傳的文件。
上傳的圖片:
如果您選擇的文件不是圖像,則會(huì)出現(xiàn)錯(cuò)誤。