php实现从上传文件创建缩略图的方法


Posted in PHP onApril 02, 2015

本文实例讲述了php实现从上传文件创建缩略图的方法。分享给大家供大家参考。具体实现方法如下:

<?php
if ($_REQUEST['action']=="add"){
$userfile = $HTTP_POST_FILES['photo']['tmp_name'];
$userfile_name = $HTTP_POST_FILES['photo']['name'];
$userfile_size = $HTTP_POST_FILES['photo']['size'];
$userfile_type = $HTTP_POST_FILES['photo']['type'];
///////////////////////// 
//GET-DECLARE DIMENSIONS //
$dimension = getimagesize($userfile);
$large_width = $dimension[0]; // GET PHOTO WIDTH
$large_height = $dimension[1]; //GET PHOTO HEIGHT
$small_width = 120; // DECLARE THUMB WIDTH
$small_height = 90; // DECLARE THUMB HEIGHT
/////////////////////////
//CHECK SIZE //
if ($userfile_size>102400){
   $error=1;
   $msg = "The photo is over 100kb. Please try again.";
}
////////////////////////////////
// CHECK TYPE (IE AND OTHERS) //
if ($userfile_type="image/pjpeg"){
  if ($userfile_type!="image/jpeg"){
    $error=1;
    $msg = "The photo must be JPG";
  }
}
//////////////////////////////
//CHECK WIDTH/HEIGHT //
if ($large_width!=600 or$large_height!=400){
$error=1;
$msg = "The photo must be 600x400 pixels";
}
///////////////////////////////////////////
//CREATE THUMB / UPLOAD THUMB AND PHOTO ///
if ($error<>1){
  $image = $userfile_name; //if you want to insert it to the database
  $pic = imagecreatefromjpeg($userfile);
  $small = imagecreatetruecolor($small_width,$small_height);
  imagecopyresampled($small,$pic,0,0,0,0, $small_width, $small_height, $large_width, $large_height);
  if (imagejpeg($small,"path/to/folder/to/upload/thumb".$userfile_name, 100)){  
    $large = imagecreatetruecolor($large_width,$large_height);
  imagecopyresampled($large,$pic,0,0,0,0, $large_width, $large_height, $large_width, $large_height);
    if (imagejpeg($large,"path/to/folder/to/upload/photo".$userfile_name, 100))
   {}
      else {$msg="A problem has occured. Please try again."; $error=1;}
  }
  else {
   $msg="A problem has occured. Please try again."; $error=1;
  }
}
//////////////////////////////////////////////
/// If everything went right a photo (600x400) and
/// a thumb(120x90) were uploaded to the given folders
}
?>
<html><head><title>create thumb</title></head>
<body>
<form name="form1" enctype="multipart/form-data" action="thisfile.php?action=add" method="post">
Select Photo: <input type="file" name="photo">
<input type="submit" name="submit" value="CREATE THUMB AND UPLOAD">
</form>
</body
</html>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
php下使用无限生命期Session的方法
Mar 16 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
php 操作调试的方法
Jul 12 PHP
探讨php中header的用法详解
Jun 07 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
php调用KyotoTycoon简单实例
Apr 02 #PHP
PHP中数据类型转换的三种方式
Apr 02 #PHP
php在apache环境下实现gzip配置方法
Apr 02 #PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 #PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 #PHP
php中实现获取随机数组列表的自定义函数
Apr 02 #PHP
PHP版微信公众平台红包API
Apr 02 #PHP
You might like
简单的php写入数据库类代码分享
2011/07/26 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
php cookie 详解使用实例
2016/11/03 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
常用的javascript function代码
2008/05/23 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
浅析Python中return和finally共同挖的坑
2017/08/18 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
新闻专业学生的自我评价
2014/02/13 职场文书
体育教师求职信
2014/06/30 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技