博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tp3.2 自带的文件上传及生成缩略图功能
阅读量:4964 次
发布时间:2019-06-12

本文共 4084 字,大约阅读时间需要 13 分钟。

public function upload_file($file_name,$width,$height) {        //检查图片尺寸是否合法        $image_size = getimagesize($_FILES[$file_name]['tmp_name']);        $img_tmp_width=$image_size['0'];        $img_tmp_height=$image_size['1'];        $size_result = $this->checkImgSize($width,$height,$img_tmp_width,$img_tmp_height);        if($size_result['status'] == '1'){             return $size_result;   //格式错误直接返回        }        //执行上传        $upload_path = C('upload_path');                      // Public/Uploads/        $upload = new \Think\Upload();                        // 实例化上传类        $upload->maxSize = 3145728;                           // 设置附件上传大小        $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,0755);        }        // 上传单个文件        $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' => 1, 'result'=>null ); } else {
// 上传成功 获取上传文件信息 $filenames = $path . $info['savepath'] . $info['savename']; //生成缩略图 $info2=$this->createThumb($info,$rootPath); $preview=C('img_base').$filenames; return $data = array( 'msg' => '上传成功', 'status' => '0', 'result' =>array( 'returnPath'=>$filenames,//保存用 'preview'=>$preview //显示用 ) ); }}//生成缩略图public function createThumb($info,$rootPath){ $path2=$rootPath.'/ad/thumb/'; if(!is_dir($path2)){ mkdir($path2,0755); } $pic_size=C('pic_size'); $cn=count($pic_size); $image=new \Think\Image(); //打开要生成缩略图的文件 for($i=0;$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],0,$in); $height=substr($pic_size[$i],$in+1); //生成ios缩略图 $image->thumb($width,$height,1)->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"),

 

转载于:https://www.cnblogs.com/zouke1220/p/9109830.html

你可能感兴趣的文章
java中的TreeMap如何顺序按照插入顺序排序
查看>>
NFS原理详解
查看>>
Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密...
查看>>
C# ObjectArx AutoCAD二次开发(转帖)
查看>>
java使用dbutils工具类实现小程序 管家婆记账软件
查看>>
装饰器和内置函数
查看>>
C++实验六继承生
查看>>
ModSecurity SQL注入攻击
查看>>
【Linux】Linux简介
查看>>
Python基础(16)_面向对象程序设计(类、继承、派生、组合、接口)
查看>>
Java 中文字符判断 中文标点符号判断
查看>>
web app开发技巧总结 (share)
查看>>
ExtJS:GridPanel之renderer:function()和itemdblclick : function()方法参数详解
查看>>
Docker简介/安装/使用
查看>>
css - 居中
查看>>
如何记录系统(oa)的操作日志 ?
查看>>
selenium webdriver定位不到元素的五种原因及解决办法
查看>>
jquery.validate.js在IE8下报错不运行
查看>>
jquery引用方法时传递参数
查看>>
初识机器学习——吴恩达《Machine Learning》学习笔记(六)
查看>>