php实现商品图片
上传商品图片
使用HTML表单创建一个文件上传字段,确保表单的enctype属性设置为multipart/form-data。PHP通过$_FILES超全局变量接收上传的文件。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="product_image">
<input type="submit" value="上传图片">
</form>
处理上传文件
在服务器端脚本(如upload.php)中,验证文件类型、大小,并将文件移动到指定目录。使用move_uploaded_file函数确保安全。

$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["product_image"]["name"]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// 验证是否为图片文件
$check = getimagesize($_FILES["product_image"]["tmp_name"]);
if ($check === false) {
die("文件不是图片。");
}
// 限制文件大小(例如2MB)
if ($_FILES["product_image"]["size"] > 2000000) {
die("图片大小超过限制。");
}
// 允许的图片格式
if (!in_array($imageFileType, ["jpg", "png", "jpeg", "gif"])) {
die("仅支持JPG, JPEG, PNG和GIF格式。");
}
// 移动文件到目标目录
if (move_uploaded_file($_FILES["product_image"]["tmp_name"], $target_file)) {
echo "图片上传成功。";
} else {
echo "上传失败。";
}
显示商品图片
将上传的图片路径存储到数据库,并在商品页面中通过HTML的<img>标签显示图片。确保路径正确且可访问。
// 假设图片路径已存储在数据库中
$image_path = "uploads/product.jpg";
echo '<img src="' . $image_path . '" alt="商品图片">';
图片缩略图生成
使用GD库或ImageMagick生成缩略图,优化页面加载速度。以下示例使用GD库创建缩略图。

$source_image = imagecreatefromjpeg("uploads/product.jpg");
$width = imagesx($source_image);
$height = imagesy($source_image);
// 设置缩略图尺寸
$new_width = 200;
$new_height = 200;
$thumb = imagecreatetruecolor($new_width, $new_height);
imagecopyresized($thumb, $source_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 保存缩略图
imagejpeg($thumb, "uploads/thumb_product.jpg");
imagedestroy($thumb);
图片水印添加
通过GD库在图片上添加文字或logo水印,保护图片版权。
$image = imagecreatefromjpeg("uploads/product.jpg");
$text_color = imagecolorallocate($image, 255, 255, 255);
imagestring($image, 5, 10, 10, "Copyright", $text_color);
imagejpeg($image, "uploads/watermarked_product.jpg");
imagedestroy($image);
图片删除
提供删除功能,确保同时从文件系统和数据库中移除图片记录。
$file_to_delete = "uploads/product.jpg";
if (file_exists($file_to_delete)) {
unlink($file_to_delete);
echo "图片已删除。";
} else {
echo "图片不存在。";
}






