基于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 缩略图完成

至此上传文件及缩略图就完成了

最新文章

  1. Python入门(一)
  2. C# 获取当前日期在指定日期范围内是第几周
  3. JAVA利用JXL导出/生成 EXCEL
  4. LeetCode Subsets (DFS)
  5. 项目源码--IOS自定义视频播放器
  6. 【01背包】HDU 2546 饭卡
  7. cocos2dx 3.2 的中国象棋游戏
  8. Python爬虫【实战篇】获取网易云歌词
  9. 【转】JRXlsExporter.setParameter常用参数说明
  10. openstack 之~keystone基础
  11. 强化学习7-Sarsa
  12. git push declined due to email privacy restrictions 解决方法
  13. kafka0.8--0.11各个版本特性预览介绍
  14. testng入门教程4用TestNG执行case
  15. python之multiprocessing创建进程
  16. oc 调用c语言方法和oc的方法调用
  17. C11线程管理:条件变量
  18. 学习:100个高质量Java开发者博客
  19. TensorFlow 的使用步骤
  20. Mockplus设计大赛获奖选手专访 | Intimate:你的专属密友音乐播放器

热门文章

  1. 在centos上安装jenkins
  2. Problem H: STL——括号匹配
  3. ORM框架SQLAlchemy与权限管理系统的数据库设计
  4. localstorage本地定时缓存
  5. 高阶函数实现AOP
  6. SQLSERVER实现更改表名,更改列名,更改约束代码
  7. [转载] 常用 Java 静态代码分析工具的分析与比较
  8. 快速拥有各种数据访问SqlHelper
  9. 异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.
  10. C# 通过url地址获取页面内容