php上传图片生成缩略图(GD库)


Posted in PHP onJanuary 06, 2016

首先来一段简单的php上传图片生成缩略图的详细代码,分享给大家供大家参考,具体内容如下

<?php
function createThumbnail($imageDirectory, $imageName, $thumbDirectory, $thumbWidth, $quality){
$details = getimagesize("$imageDirectory/$imageName") or die('Please only upload images.');
$type = preg_replace('@^.+(?<=/)(.+)$@', '$1', $details['mime']);
eval('$srcImg = imagecreatefrom'.$type.'("$imageDirectory/$imageName");');
$thumbHeight = $details[1] * ($thumbWidth / $details[0]);
$thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight,
$details[0], $details[1]);
eval('image'.$type.'($thumbImg, "$thumbDirectory/$imageName"'.
(($type=='jpeg')?', $quality':'').');');
imagedestroy($srcImg);
imagedestroy($thumbImg);
}
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
createThumbnail("/location/of/main/image", $name, "/location/to/store/thumb", 120, 80);
//120 = thumb width :: 80 = thumb quality (1-100)
}
}
?>

接下来再为大家推荐一个实例php使用GD库上传图片以及创建缩略图,直接看代码:

GD库是PHP进行图象操作一个很强大的库。

先在php.ini里增加一行引用:extension=php_gd2.dll

重启apache,做一个测试页var_dump(gd_info());输出数据表明GD库引用成功。

图片上传页面 upload.html

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>图片上传</title>
</head>
<body>
<h1>文件上传(只允许上传jpg类型图片)</h1>
<form enctype="multipart/form-data" action="upload_img.php" method="post">
 <input name="upfile" type="file"><br><br>
 <input type="submit" value="提交">
</form>
</body>
</html>

处理页面upload_img.php

<?php
 //上传图片保存地址
 $uploadfile = "upfiles/".$_FILES['upfile']['name'];
 //缩略图保存地址
 $smallfile = "upfiles/small_".$_FILES['upfile']['name'];


 if($_FILES['upfile']['type'] != "image/jpeg")
 {
  echo '文件类型错误';
 }
 else
 {
  move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile); //上传文件

  $dstW=200;//缩略图宽
  $dstH=200;//缩略图高

  $src_image=ImageCreateFromJPEG($uploadfile);
  $srcW=ImageSX($src_image); //获得图片宽
  $srcH=ImageSY($src_image); //获得图片高

  $dst_image=ImageCreateTrueColor($dstW,$dstH);
  ImageCopyResized($dst_image,$src_image,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
  ImageJpeg($dst_image,$smallfile);

  echo '文件上传成功<br>';
  echo "<img src='$smallfile' />";
 }
?>

希望对大家学习php程序设计有所帮助,谢谢大家的支持。

PHP 相关文章推荐
ASP和PHP都是可以删除自身的
Apr 09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
php object转数组示例
Jan 15 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
joomla数据库操作示例代码
Jan 06 #PHP
Yii清理缓存的方法
Jan 06 #PHP
yii实现model添加默认值的方法(2种方法)
Jan 06 #PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 #PHP
基于PHP技术开发客服工单系统
Jan 06 #PHP
分享php邮件管理器源码
Jan 06 #PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 #PHP
You might like
PHP4实际应用经验篇(1)
2006/10/09 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP时间处理类操作示例
2018/09/05 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
由面试题加深对Django的认识理解
2019/07/19 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
环境工程毕业生自荐信
2013/11/17 职场文书
就业自荐信
2013/12/04 职场文书
经典演讲稿范文
2013/12/30 职场文书
新郎新娘婚礼答谢词
2014/01/11 职场文书
企业年度评优方案
2014/06/02 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
个人更名证明
2015/06/23 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python