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 相关文章推荐
一个高ai的分页函数和一个url函数
Oct 09 PHP
解决GD中文乱码问题
Feb 14 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 PHP
php中pcntl_fork详解
Apr 01 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语法(3)
2006/10/09 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
Python中字典的基本知识初步介绍
2015/05/21 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python3 合并二叉树的实现
2019/09/30 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
入党自我评价优缺点
2014/01/25 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
创业融资计划书
2014/04/25 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
个人优缺点总结
2015/02/28 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
详解Javascript实践中的命令模式
2021/05/05 Javascript
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
vue特效之翻牌动画
2022/04/20 Vue.js