在 PHP 中上傳多個圖像

WBOY
發布: 2024-02-29 18:02:02
轉載
806 人瀏覽過

php小編魚仔為您介紹如何在PHP中上傳多個影像。在網站開發中,經常需要實現批量上傳圖片的功能,為了提高用戶體驗和效率,上傳多個圖像是一個常見需求。 PHP提供了豐富的函數和技術來實現這項功能,包括使用表單、處理上傳檔案、循環處理多個檔案等。透過本文的指導,您將學會如何在PHP中輕鬆上傳多個圖像,為您的網站添加更多互動和創意元素。

為了使之成為可能,我們需要根據您建立程式碼庫的方式在我們的 HTML 文件或部分中指定表單操作,然後使用內建函數來處理該操作。

在本文中,我們將學習如何在PHP 中上傳多個圖像,這為我們提供了從表單輸入中指定所需文件、處理所有用戶選擇的文件以及上傳或移動到所需位置的上下文。

了解 PHP 中多個檔案上傳的表單操作和 $_FILES

當使用者將任何輸入放入 HTML 表單時,我們使用 POST 方法將任何輸入(從文字到檔案)傳送到我們的 PHP 應用程式所在的伺服器端。

<fORM method=&#39;post&#39; action=&#39;&#39; enctype=&#39;multipart/form-data&#39;>
登入後複製

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"]
登入後複製

使用 move_uploaded_file() 在 PHP 中上傳多張圖片

現在我們了解了基礎知識,我們需要上傳多個文件。讓我們建立 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&#39;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&#39;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 中上传多个图像

然後,顯示上傳的檔案。

在 PHP 中上傳多個圖像

上傳的圖片:

在 PHP 中上傳多個圖像

如果您選擇的檔案不是圖像,則會出現錯誤。

在 PHP 中上傳多個圖像

以上是在 PHP 中上傳多個圖像的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:lsjlt.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!