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新手上路(十三)
Oct 09 PHP
php分页示例代码
Mar 19 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 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&amp;java(一)
2006/10/09 PHP
PHP4.04简明安装
2006/10/09 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
python格式化字符串实例总结
2014/09/28 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python 内置模块详解
2019/01/01 Python
python使用requests.session模拟登录
2019/08/09 Python
python urllib爬虫模块使用解析
2019/09/05 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
工作人员思想汇报
2014/01/09 职场文书
水电站项目建议书
2014/05/12 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
主题班会开场白
2015/06/01 职场文书
解约证明模板
2015/06/19 职场文书
纪委立案决定书
2015/06/24 职场文书
运动会新闻报道稿
2015/07/22 职场文书
父亲节感言
2015/08/03 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
Python闭包的定义和使用方法
2022/04/11 Python
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL