此简短教程将解释我们如何使用PHP上传图像并创建图像的缩略图。
我们可以使用我们的教程学习动态缩略图创建,并轻松将此脚本集成在项目中。
此外,我们还可以查看工作实时演示并从上面的链接下载完整脚本。
以下脚本是上传图像的完整解决方案,并创建图像缩略图。
首先,我们将创建一个包含函数的PHP脚本。
下面的代码使得一个名为'cwupload()'的函数,该函数将获得7个参数。
'$file_data'接受输入字段名称,'$target_folder'接受欲望上传文件夹路径,'$file_name'接受欲望上传的文件名,'$thumb'接受true或者false,'$thumb_folder'接受欲望缩略图文件夹路径'$thumb_width'接受缩略图宽度,'$thumb_height'接受缩略图高度。
'cwupload()'函数如果缩略图创建成功,则返回缩略图名称,否则返回false。
function cwUpload($field_name = '', $target_folder = '', $file_name = '', $thumb = FALSE, $thumb_folder = '', $thumb_width = '', $thumb_height = ''){
//folder path setup
$target_path = $target_folder;
$thumb_path = $thumb_folder;
//file name setup
$filename_err = explode(".",$_FILES[$field_name]['name']);
$filename_err_count = count($filename_err);
$file_ext = $filename_err[$filename_err_count-1];
if($file_name != ''){
$fileName = $file_name.'.'.$file_ext;
}else{
$fileName = $_FILES[$field_name]['name'];
}
//upload image path
$upload_image = $target_path.basename($fileName);
//upload image
if(move_uploaded_file($_FILES[$field_name]['tmp_name'],$upload_image))
{
//thumbnail creation
if($thumb == TRUE)
{
$thumbnail = $thumb_path.$fileName;
list($width,$height) = getimagesize($upload_image);
$thumb_create = imagecreatetruecolor($thumb_width,$thumb_height);
switch($file_ext){
case 'jpg':
$source = imagecreatefromjpeg($upload_image);
break;
case 'jpeg':
$source = imagecreatefromjpeg($upload_image);
break;
case 'png':
$source = imagecreatefrompng($upload_image);
break;
case 'gif':
$source = imagecreatefromgif($upload_image);
break;
default:
$source = imagecreatefromjpeg($upload_image);
}
imagecopyresized($thumb_create,$source,0,0,0,0,$thumb_width,$thumb_height,$width,$height);
switch($file_ext){
case 'jpg' || 'jpeg':
imagejpeg($thumb_create,$thumbnail,100);
break;
case 'png':
imagepng($thumb_create,$thumbnail,100);
break;
case 'gif':
imagegif($thumb_create,$thumbnail,100);
break;
default:
imagejpeg($thumb_create,$thumbnail,100);
}
}
return $fileName;
}
else
{
return false;
}
}
我们将检查单击上载按钮是否已单击上传按钮,并且图像字段不是空白。
现在调用'cwupload()'函数并将所有参数值置于。
如果我们只想上传图像,则应使用前3个参数。
对于上传和缩略图创建,我们应该使用'cwupload()'函数的所有参数。
如果我们不想使用自定义缩略图名称,请留空第三个参数空白。
请遵循注释行以获取更好的理解。
if(!empty($_FILES['image']['name'])){
//call thumbnail creation function and store thumbnail name
$upload_img = cwUpload('image','uploads/','',TRUE,'uploads/thumbs/','200','160');
//full path of the thumbnail image
$thumb_src = 'uploads/thumbs/'.$upload_img;
//set success and error messages
$message = $upload_img?"<span style='color:#008000;'>Image thumbnail have been created successfully.</span>":"<span style='color:#F00000;'>Some error occurred, please try again.</span>";
}else{
//if form is not submitted, below variable should be blank
$thumb_src = '';
$message = '';
}
表单HTML:
<form method="post" enctype="multipart/form-data">
<input type="file" name="image"/>
<input type="submit" name="submit" value="Upload"/>
</form>
以下代码用于显示上传的缩略图图像。
<?php if($thumb_src != ''){ ?>
<img src="<?php echo $thumb_src; ?>" alt="">
<?php } ?>
日期:2020-06-02 22:16:00 来源:oir作者:oir
