在網站開發中,圖片上傳是一個常見需求。為了保證圖片上傳的安全性與用戶體驗,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 表單中的圖片上傳與處理。根據需求,您還可以加入更多功能,如添加水印、裁剪或更複雜的圖片編輯操作。這些技巧能夠幫助開發者更高效地處理用戶上傳的圖片。