tp3.2 自带的文件上传及生成缩略图功能

 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值