tp3.2 自带的文件上传及生成缩略图功能
public function upload_file($file_name,$width,$height) {
//检查图片尺寸是否合法
$image_size = getimagesize($_FILES[$file_name]['tmp_name']);
$img_tmp_width=$image_size[''];
$img_tmp_height=$image_size[''];
$size_result = $this->checkImgSize($width,$height,$img_tmp_width,$img_tmp_height);
if($size_result['status'] == ''){
return $size_result; //格式错误直接返回
}
//执行上传
$upload_path = C('upload_path'); // Public/Uploads/
$upload = new \Think\Upload(); // 实例化上传类
$upload->maxSize = ; // 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型
$upload->rootPath = './' . rtrim($upload_path, '/'); // 设置附件上传根目录
$upload_img_url=C('upload_img_url'); // /www/web/feelee_mall_img/public_html/
$rootPath=$upload_img_url . rtrim($upload_path, '/'); // 设置附件上传根目录 /www/web/feelee_mall_img/public_html/Public/Uploads
$upload->rootPath = $rootPath;
$savepath = '/ad/';
$path = '/' . $upload_path;
$upload->saveName = uniqid();
$upload->savePath = $savepath;
$upload->replace = true;
$upload->autoSub = true;
$upload->subName = "origin"; //date("Ymd");
$path1='/ad/origin/';
if(!is_dir($path1)){
mkdir($path1,);
}
// 上传单个文件
$info = $upload->uploadOne($_FILES[$file_name]);
if (!$info) {// 上传错误提示错误信息
$upload_error = C('upload_error_msg');
$error = $upload_error[$upload->getError()];
if ($error == '') {
$error = $upload->getError();
}
return $data = array(
'msg' => $error,
'status' => ,
'result'=>null
);
} else {// 上传成功 获取上传文件信息
$filenames = $path . $info['savepath'] . $info['savename'];
//生成缩略图
$info2=$this->createThumb($info,$rootPath);
$preview=C('img_base').$filenames;
return $data = array(
'msg' => '上传成功',
'status' => '',
'result' =>array(
'returnPath'=>$filenames,//保存用
'preview'=>$preview //显示用
)
);
}
}
//生成缩略图
public function createThumb($info,$rootPath){
$path2=$rootPath.'/ad/thumb/';
if(!is_dir($path2)){
mkdir($path2,);
}
$pic_size=C('pic_size');
$cn=count($pic_size);
$image=new \Think\Image();
//打开要生成缩略图的文件
for($i=;$i<$cn;$i++){
$image->open($rootPath."/ad/origin/".$info['savename']);
$url_pic='/thumb/'.$pic_size[$i] ."_". $info['savename'];
$in=strpos($pic_size[$i],"_");
$width=substr($pic_size[$i],,$in);
$height=substr($pic_size[$i],$in+);
//生成ios缩略图
$image->thumb($width,$height,)->save($rootPath."/ad".$url_pic);
}
}
manage\Application\Common\Conf\config.php
'upload_img_url'=>'/home/wwwroot/default/feelee_mall_img/public_html/',
//文件上传返回错误说明替换
"upload_error_msg" =>array(
'没有上传的文件!' => '没有上传的文件!',
'非法图像文件!' => '不允许的文件类型,只能上传jpg,gif,png,jpeg格式的文件!',
'未知上传错误!' => '未知上传错误!',
'非法上传文件!' => '非法上传文件!',
'上传文件大小不符!' => '上传文件大小超过3M!',
'上传文件MIME类型不允许!' => '不允许的文件类型,只能上传jpg,gif,png,jpeg格式的文件!',
'上传文件后缀不允许' => '不允许的文件类型,只能上传jpg,gif,png,jpeg格式的文件!',
'上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值!' => '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值!',
'上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值!' => '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值!',
'文件只有部分被上传!' => '文件只有部分被上传!',
'没有文件被上传!' => '没有文件被上传!',
'找不到临时文件夹!' => '找不到临时文件夹!',
'文件写入失败!' => '文件写入失败!',
'文件命名规则错误!' => '文件命名规则错误!'
),
//图片缩略图尺寸
'pic_size'=>array("640_960","640_1136","750_1334","1242_2208","1125_2436","720_1280","800_1280","1080_1920","1440_2560"),
tp3.2 自带的文件上传及生成缩略图功能的更多相关文章
- CI自带的文件上传及生成缩略图
/* * 文件上传 * @param $upload_path 文件上传路径 * @param $formpic 表单name属性名称 */ private function doUpload($up ...
- spring boot:实现图片文件上传并生成缩略图(spring boot 2.3.1)
一,为什么要给图片生成缩略图? 1, 用户上传的原始图片如果太大,不能直接展示在网站页面上, 因为不但流费server的流量,而且用户打开时非常费时间, 所以要生成缩略图. 2,服务端管理图片要注意的 ...
- Office文件上传自动生成缩略图
来源:微信公众号CodeL 前不久产品经理提出一个X的需求,说上传office文件的时候需要将首页自动截图,用于显示文件列表的时候将文件第一页缩略图展示给用户.实现的方式有多种,这里给大家介绍一个简单 ...
- Office文件上传自动生成缩略图-C#开发
原文: http://www.knowsky.com/898407.html 上传office文件的时候需要将首页自动截图,用于显示文件列表的时候将文件第一页缩略图展示给用户.实现的方式有多种,这里给 ...
- yii php 图片上传与生成缩略图
今天需要做图片上传与生成缩略图的功能,把代码进行记录如下: html 视图 ($pic_action_url = $this->createAbsoluteUrl('h ...
- AJAX文件上传实践与分析,带HTML5文件上传API。
对于HTML5已经支持AJAX文件上传了,但如果需要兼容的话还是得用一点小技巧的,HTML5等等介绍,先来看看以前我们是怎么写的. 网上可能会有一些叫AJAX文件上传插件,但在AJAX2.0之前是不可 ...
- Java使用comms-net jar包完成ftp文件上传进度的检测功能
本文章只讲述大致的思路与本次功能对应的一些开发环境,具体实现请结合自己的开发情况,仅供参考,如果有不对的地方,欢迎大家指出! 准备环境:JDK1.7 OR 1.8.eclipse.ftp服务器(可自行 ...
- minio实现文件上传下载和删除功能
https://blog.csdn.net/tc979907461/article/details/106673570?utm_medium=distribute.pc_relevant_t0.non ...
- jQuery File Upload 文件上传插件使用二 (功能完善)
使用Bootstrap美化进度条 Bootstrap现在几乎是人尽皆知了,根据它提供的进度条组件, 让进度条显得高大尚点 正因为其功能强大,js模块文件之间牵连较深 不好的地方耦合度非常高 重要的参数 ...
随机推荐
- 前端面试:js数据类型
js数据类型是js中的基础知识点,也是前端面试中一定会被考察的内容.本文旨在知识的梳理和总结,希望读者通过阅读本文,能够对这一块知识有更清晰的认识.文中如果出现错误,请在评论区指出,谢谢. js数据类 ...
- 关于java程序在运行时出现a java exception has occured时解决方法
错误截图: 出现情况原因分析: 1.环境没有配置好,配置java环境变量: 参考 检查是否正确,java javac,可以尝试重新 2.查看使用的jdk版本是否存在版本问题: 例如jdk1.7对中文的 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设置浮动和偏移
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...
- Python数据类型-3 布尔类型
布尔类型 对于错.0和1.正与反,都是传统意义上的布尔类型. 但在Python语言中,布尔类型只有两个值,True与False.请注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型. 布尔值 ...
- 【转载】Cmd Markdown 公式指导手册
目录 Cmd Markdown 公式指导手册 一.公式使用参考 1.如何插入公式 2.如何输入上下标 3.如何输入括号和分隔符 4.如何输入分数 5.如何输入开方 6.如何输入省略号 7.如何输入矢量 ...
- CPD
CPD,Cost per day的缩写,意思是按天收费,是一种广告合作方式.在实际的广告合作中根据行业不同还包括Cost per Download的缩写含义,意思是依据实际下载量收费.
- Mysql ,用户管理命令
添加用户.删除用户与授权以下对数据库的操作完全可以利用管理软件完成,比如在Navicat上进行操作,对数据库进行用户和权限管理. 1.创建用户:以root用户登录到数据库进行用户创建 命令: CREA ...
- PHP常用的一些优化技巧
PHP常用的一些优化技巧 点击联系老杨 ecshop模板 php 优化技巧 老杨ecshop ecshop二次开发 2013-03-29 0 做为最流行的WEB语言, PHP他的突出优势就是其速度与效 ...
- 思科 ASA 系列防火墙 官方文档下载指南
思科 ASA 系列命令参考 思科 ASA 系列命令参考,A 至 H 命令 思科 ASA 系列命令参考, I 至 R 命令 思科 ASA 系列命令参考,S 命令 思科 ASA 系列命令参考, ASASM ...
- Element-UI中关于table表格的样式操作
项目中使用到element-ui组件库,经常需要操作表格,编辑样式的过程中遇到一些问题,官网针对table给出了很多的api,自己可以自定义,基本能满足产品需求,但是没有给出具体的案例,网上的资料也比 ...