在網站開發中,圖片上傳是一個常見需求。為了保證圖片上傳的安全性與用戶體驗,PHP 提供了簡便的工具來實現這一功能。本文將逐步講解如何使用PHP 來處理表單中的圖片上傳和處理過程。
首先,我們需要在HTML 中創建一個表單,讓用戶選擇並上傳圖片。以下是一個基本的圖片上傳表單代碼:
<!DOCTYPE html> <html> <head> <title>圖片上傳</title> </head> <body> <form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" value="上傳"> </form> </body> </html>
當用戶選擇了圖片並提交表單後,我們需要使用PHP 來處理圖片的上傳。上傳前,我們需要驗證圖片的類型和大小,並將其存儲到指定目錄。
<?php $targetDir = "uploads/"; $targetFile = $targetDir . basename($_FILES["image"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); // 檢查圖片類型 $allowedTypes = array('jpg', 'jpeg', 'png', 'gif'); if (!in_array($imageFileType, $allowedTypes)) { echo "只允許上傳 JPG, JPEG, PNG 或 GIF 格式的圖片"; exit; } // 檢查圖片大小 $maxSize = 5 * 1024 * 1024; // 5MB if ($_FILES["image"]["size"] > $maxSize) { echo "圖片大小不能超過5MB"; exit; } // 將圖片移動到指定目錄if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) { echo "圖片上傳成功"; } else { echo "圖片上傳失敗"; } ?>
上傳成功的圖片可以進一步處理,比如調整圖片大小、裁剪或添加水印等。以下示例展示瞭如何將圖片縮放為200x200的縮略圖:
<?php $targetDir = "uploads/"; $targetFile = $targetDir . basename($_FILES["image"]["name"]); // 調整圖片大小 $thumbWidth = 200; $thumbHeight = 200; $sourceImage = imagecreatefromjpeg($targetFile); $sourceWidth = imagesx($sourceImage); $sourceHeight = imagesy($sourceImage); $thumbImage = imagecreatetruecolor($thumbWidth, $thumbHeight); imagecopyresized($thumbImage, $sourceImage, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $sourceWidth, $sourceHeight); $thumbFile = $targetDir . "thumb_" . basename($_FILES["image"]["name"]); imagejpeg($thumbImage, $thumbFile); imagedestroy($sourceImage); imagedestroy($thumbImage); echo "圖片處理成功"; ?>
以上代碼將圖片調整為200x200的縮略圖並保存到服務器。
通過以上步驟,我們可以輕鬆實現PHP 表單中的圖片上傳與處理。根據需求,您還可以加入更多功能,如添加水印、裁剪或更複雜的圖片編輯操作。這些技巧能夠幫助開發者更高效地處理用戶上傳的圖片。