php使用表单上传图片,并提交缩略图最大宽高,并保持文件夹,然后使用缩略图函数生成缩略图并输出原图和缩略图
时间: 2024-02-04 16:03:06 浏览: 64
好的,我来回答你的问题。首先,你可以使用 HTML 表单和 PHP 来上传图片。以下是实现上传图片的 PHP 代码:
```php
<?php
if(isset($_POST['submit'])){
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
$max_width = $_POST['max_width'];
$max_height = $_POST['max_height'];
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false){
if($imageFileType == "jpg" || $imageFileType == "png" || $imageFileType == "jpeg" || $imageFileType == "gif" ){
if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)){
$image = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$thumbnail = $target_dir . 'thumbnail_' . basename($_FILES["fileToUpload"]["name"]);
list($width, $height) = getimagesize($image);
$ratio = min($max_width/$width, $max_height/$height);
$new_width = $width * $ratio;
$new_height = $height * $ratio;
$thumb = imagecreatetruecolor($new_width, $new_height);
if($imageFileType == "jpg" || $imageFileType == "jpeg"){
$source = imagecreatefromjpeg($image);
}else if($imageFileType == "png"){
$source = imagecreatefrompng($image);
}else if($imageFileType == "gif"){
$source = imagecreatefromgif($image);
}
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
if($imageFileType == "jpg" || $imageFileType == "jpeg"){
imagejpeg($thumb, $thumbnail);
}else if($imageFileType == "png"){
imagepng($thumb, $thumbnail);
}else if($imageFileType == "gif"){
imagegif($thumb, $thumbnail);
}
echo "The original image is <img src='$image'/><br>";
echo "The thumbnail image is <img src='$thumbnail'/>";
}else{
echo "Sorry, there was an error uploading your file.";
}
}else{
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
}
}else{
echo "File is not an image.";
}
}
?>
```
这个 PHP 代码实现了上传图片并生成缩略图的功能,其中包括:
- 检查上传的文件是否是一个图像文件
- 检查上传的文件是否已经存在
- 检查上传的文件类型是否是允许的类型
- 移动上传的文件到指定文件夹
- 计算缩略图的大小
- 创建缩略图
- 输出原图和缩略图
你可以把上面的 PHP 代码放在一个 HTML 表单页面中,这样就可以通过浏览器上传图片并生成缩略图了。以下是一个简单的 HTML 表单页面:
```html
<!DOCTYPE html>
<html>
<head>
<title>Upload Image and Generate Thumbnail</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload"><br><br>
Max Width of Thumbnail:
<input type="number" name="max_width" value="200"><br><br>
Max Height of Thumbnail:
<input type="number" name="max_height" value="200"><br><br>
<input type="submit" value="Upload Image and Generate Thumbnail" name="submit">
</form>
</body>
</html>
```
在这个 HTML 表单页面中,你可以选择一个图片文件,设置缩略图的最大宽度和最大高度,然后点击提交按钮来上传图片并生成缩略图。
我希望这个代码对你有所帮助!
阅读全文