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模块文件之间牵连较深 不好的地方耦合度非常高 重要的参数 ...
随机推荐
- PAT T1008 Airline Routes
用tarjan算法缩点~ #include<bits/stdc++.h> using namespace std; ; vector<int> g[maxn]; int N,M ...
- nginx 的提升多个小文件访问的性能模块
阿里开源的第三方模块下载地址:https://github.com/alibaba/nginx-http-concat 下载模块 git clone https://github.com/alibab ...
- MPAndroidChart柱子上的文字的颜色dataSet.setValueTextColors
版本:MPAndroidChart v3.1.0 这是个很强大的图表,不同的版本对应的API会不一样. 需求描述: 用了柱状图,但要实现这样的功能,通过不同的门店来区分不同的柱子的颜色,并且柱子上文字 ...
- Cortex-M3学习小结
- Jsp补充
留在这里日后出错可查 <%@ page language="java" import="java.util.*,java.lang.*" pageEnco ...
- 一键GHOST使用图文教程
一.准备工作 系统安装好以后,对系统进行及时备份,以防不测,以后恢复时三五分钟即可完成,还你一个全新的完整系统. 一键GHOST V8.3 Build 060903 硬盘版免费下载 从以上地址下载软件 ...
- 在java中调用python方法
1.http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录 示例: 1.摘自:http://blog.csdn.n ...
- UIViewContentModel图解+文解
typedef NS_ENUM(NSInteger, UIViewContentMode) { //图片拉伸填充至整个UIImageView(图片可能会变形),这也是默认的属性,如果什么都不设置就是它 ...
- ImageMagick 将PDF转图片命令
将 pdf 转一张图片 PS C:\Users\Microestc\desktop> magick convert -density -quality .pdf -append .jpeg ro ...
- redis之五大数据类型介绍
目录 redis五大数据类型 1. string(字符串) 特点: 格式: 基本操作: 2. hash(哈希) 特点: 格式: 基本操作 3. list(列表) 特点 格式 基本操作 4. set(集 ...