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 相关文章推荐
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
Sep 30 PHP
PHP多个版本的分析解释
Jul 21 PHP
PHPMailer邮件发送的实现代码
May 04 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
php发送post请求函数分享
Mar 06 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP数组和explode函数示例总结
May 08 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
Laravel 实现密码重置功能
Feb 23 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桌面中心(四) 数据显示
2007/03/11 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
php计算一个文件大小的方法
2015/03/30 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
GreyBox技术总结(转)
2010/11/23 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
python迭代器与生成器详解
2016/03/10 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
tensorflow的计算图总结
2020/01/12 Python
python打包多类型文件的操作方法
2020/09/21 Python
日本小田急百货官网:Odakyu
2018/07/19 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
工程开工庆典邀请函
2014/02/01 职场文书
党员违纪检讨书
2014/02/18 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
党校学习心得体会范文
2014/09/09 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
学校中秋节活动总结
2015/03/23 职场文书
公司宣传语大全
2015/07/13 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis
mysql数据库隔离级别详解
2022/06/16 MySQL