TP3.2 图片上传及缩略图
基于TP自带的上传文件的类, Think/Upload.class.php
下面是上传的具体方法
/**
* 图片上传处理
* @param [String] $path [保存文件夹名称]
* @param [String] $thumbWidth [缩略图宽度]
* @param [String] $thumbHeight [缩略图高度]
* @return [Array] [图片上传信息]
*/ function _upload($path,$thumbWidth = '' , $thumbHeight = '') {
$obj = new \Think\Upload();// 实例化上传类
$obj->maxSize = C('UPLOAD_MAX_SIZE') ;// 设置附件上传大小
$obj->savePath =C('UPLOAD_PATH').$path.'/'; // 设置附件上传目录
$obj->exts = C('UPLOAD_EXTS');// 设置附件上传类型
$obj->saveName = array('uniqid','');//文件名规则
$obj->replace = true;//存在同名文件覆盖
$obj->autoSub = true;//使用子目录保存
$obj->subName = array('date','Ymd');//子目录创建规则,
$info = $obj->upload();
// return $info;
if(!$info) {
return array('status' =>0, 'msg'=> $obj->getError() );
}else{
if($info){ //生成缩略图 $image = new \Think\Image();
foreach($info as $file) {
$thumb_file = C('UPLOAD_PATH') . $file['savepath'] . $file['savename'];
$save_path = C('UPLOAD_PATH') . $file['savepath'] . 'mini_' . $file['savename']; //保存缩略图的规则
$image->open( $thumb_file )->thumb($thumbWidth,$thumbHeight,\Think\Image::IMAGE_THUMB_FILLED)->save($save_path);
return array(
'status' => 1,
'savepath' => $file['savepath'],
'savename' => $file['savename'],
'pic_path' => $file['savepath'] . $file['savename'],
'mini_pic' => $file['savepath'] . 'mini_' .$file['savename']
);
// @unlink($thumb_file); //上传生成缩略图以后删除源文件
}
}else{
foreach($info as $file) {
return array(
'status' => 1,
'savepath' => $file['savepath'],
'savename' => $file['savename'],
'pic_path' => $file['savepath'].$file['savename']
);
}
}
}
}
在配置文件中设置相关属性
//图片上传
'UPLOAD_MAX_SIZE' => 13058176, //最大上传大小
'UPLOAD_PATH' => './Uploads/', //文件上传保存路径
//'UPLOAD_PATH' => './', //文件上传保存路径
'UPLOAD_EXTS' => array('jpg','jpeg','gif','png'),
上传:
1、设置表单的enctype属性
2、根目录创建 Uploads 目录
3、调用方法,传参(保存的路径,宽度,高度)
$upload = _upload('Content','300','300'); //文件上传信息及缩略图
完成后看下打印效果

文件路径

mini_XXXXXXX.jpg 缩略图完成
至此上传文件及缩略图就完成了
TP3.2 图片上传及缩略图的更多相关文章
- ThinkPHP5.0图片上传生成缩略图实例代码
很多朋友遇到这样一个问题,图片上传生成缩略图,很多人在本机(win)测试成功,上传到linux 服务器后错误. 我也遇到同样的问题.网上一查,有无数的人说是服务器临时文件目录权限问题. 几经思考后,发 ...
- Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现
简单三步实现图片无刷新上传:注意是上传,至于上传时的验证,比如图片的尺寸,大小,格式判断.限制等,自行解决. 兼容性想还不错:FF,CH,IE,猎豹,都是可以实现的.如果看到回显.当然就是成功了. 经 ...
- 通过AngularJS实现图片上传及缩略图展示
从项目中截出的代码 HTML部分: <section> <img src="image/user-tuijian/tuijian_banner.png" /> ...
- Django xadmin图片上传与缩略图处理
基本摘要 用python django开发时,个人选中Xadmin后台管理系统框架,因为它*内置功能丰富, 不仅提供了基本的CRUD功能,还内置了丰富的插件功能.包括数据导出.书签.图表.数据添加向导 ...
- 图片上传封装类【包括图片上传和缩略图上传】.NET
原文发布时间为:2009-08-30 -- 来源于本人的百度文章 [由搬家工具导入] #region 上传图片及上传缩略图 public class UpFile : System.Web.UI ...
- input file 图片上传
使用第三方:jquery.ajaxfileupload.jsinput中的name根据后端来定 <form method="post" enctype="multi ...
- yii php 图片上传与生成缩略图
今天需要做图片上传与生成缩略图的功能,把代码进行记录如下: html 视图 ($pic_action_url = $this->createAbsoluteUrl('h ...
- MVC图片上传并显示缩略图
前面已经说了怎么通过MVC来上传文件,那么这次就说说如何上传图片然后显示缩略图,这个的实用性还是比较大.用UpLoad文件夹来保存上传的图片,而Temp文件夹来保存缩略图,前面文件上传部分就不再重复了 ...
- TP3.2批量上传文件(图片),解决同名冲突问题
1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" meth ...
随机推荐
- 初入红尘——在安联IT实习的一点感受(未完......)
文章很短,只有800字. 从踏进安联的大门开始,我便入了红尘. 安联的迎客之道 “花径不曾缘客扫,蓬门今始为君开.”我的第一个贵人就是前台的美君姐.由于路况不熟,所以我没把握好时间,到的时候比约定的面 ...
- Tomcat请求头过大
今天开发反应Tomcat的请求头过大 <Connector port="8280" protocol="HTTP/1.1" connectionTimeo ...
- Node.js Stream(流)
Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出). Node.js,Str ...
- css 3d
Perspective 透视点,视角,CSS3D 的透视点在浏览器前方 默认值为none,是作用于子元素,指定观察者与z=0平面的距离,使具有三维位置变换的元素产生透视效果.z>0的三维元素比 ...
- 在WebForm中实现购物车思路
关于网站购物车的实现的思考 写在前面的话:刚来公司的的时候,老大安排了一个任务,企业站,但是需要实现购物车的功能,以前没做过,所有就向周围的人请教了一下如何实现购物车,自己也在网上搜了一下,有了些 ...
- [转载] 说说JSON和JSONP,也许你会豁然开朗
转载自http://kb.cnblogs.com/page/139725/ 前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了 ...
- springboot之banner
1 在Main里面关闭 @SpringBootApplication@MapperScan("org.sselab.mapper")public class Application ...
- Vim配置及使用笔记
Vim配置及使用笔记 安装 apt-get install vim -y 配置说明 vim /etc/vim/vimrc 在配置文件后加入这些配置项 set nu set tabstop=4 set ...
- Mac下Kali虚拟机与宿主机共享文件夹
宿主机: 1.创建文件夹.测试文件 ZhangSan-MacBook-Air:~ zhangsan$ mkdir kalishare && cd kalishare/ ZhangSan ...
- Python 爬虫练习(一) 爬取国内代理ip
简单的正则表达式练习,爬取代理 ip. 仅爬取前三页,用正则匹配过滤出 ip 地址和 端口,分别作为key.value 存入 validip 字典. 如果要确定代理 ip 是否真的可用,还需要再对代理 ...