TP3.2 图片上传及缩略图
2024-10-18 22:39:21
基于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 缩略图完成
至此上传文件及缩略图就完成了
最新文章
- Python入门(一)
- C# 获取当前日期在指定日期范围内是第几周
- JAVA利用JXL导出/生成 EXCEL
- LeetCode Subsets (DFS)
- 项目源码--IOS自定义视频播放器
- 【01背包】HDU 2546 饭卡
- cocos2dx 3.2 的中国象棋游戏
- Python爬虫【实战篇】获取网易云歌词
- 【转】JRXlsExporter.setParameter常用参数说明
- openstack 之~keystone基础
- 强化学习7-Sarsa
- git push declined due to email privacy restrictions 解决方法
- kafka0.8--0.11各个版本特性预览介绍
- testng入门教程4用TestNG执行case
- python之multiprocessing创建进程
- oc 调用c语言方法和oc的方法调用
- C11线程管理:条件变量
- 学习:100个高质量Java开发者博客
- TensorFlow 的使用步骤
- Mockplus设计大赛获奖选手专访 | Intimate:你的专属密友音乐播放器
热门文章
- 在centos上安装jenkins
- Problem H: STL——括号匹配
- ORM框架SQLAlchemy与权限管理系统的数据库设计
- localstorage本地定时缓存
- 高阶函数实现AOP
- SQLSERVER实现更改表名,更改列名,更改约束代码
- [转载] 常用 Java 静态代码分析工具的分析与比较
- 快速拥有各种数据访问SqlHelper
- 异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.
- C# 通过url地址获取页面内容