• tp5 生成缩略图片


    我先说下我的思路,先把正常图片存到服务器,再通过代码将服务器上的大图压缩,生成新的小图替代大图

    下面上代码

    前台HTML代码

    <div class="upload-btn">
    	<input class="pic-ipt" type="file" accept="image/*" />
    </div>
    

    script代码

     

    function upload_img(cid){
    			var formData = new FormData();
    			formData.append("file", $(this).get(0).files[0]);
    		    $.ajax({
    		        url:'./upload_photo',
    		        type:'POST',
    		        data:formData,
    		        cache: false,
    		        contentType: false,
    		        processData: false,
    		        success:function(data){
    		        	console.log(data);
    		        }
    		    });
    		}
    

    php代码   

    /**
         * 上传
         */
        public function upload_photo(){
            $file = $this->request->file('file');
            //生成缩略图
            // $file = 	hinkImage::open($file);
            // $test = $file->thumb(400, 400)->save(ROOT_PATH . 'public' . DS . 'uploads/'.time().'.png');
            // return ['code'=>2,'error'=>$test->getFilename()];
                    if(!empty($file)){
                        // 移动到框架应用根目录/public/uploads/ 目录下
                        $info = $file->validate(['size'=>4145728,'ext'=>'jpg,png,gif,jpeg'])->rule('uniqid')->move(ROOT_PATH . 'public' . DS . 'uploads');
                        $error = $file->getError();
                        // return ['code'=>2,'error'=>$error];
                        //验证文件后缀后大小
                        if($error){
                            return ['code'=>2,'error'=>$error];
                            // dump($error);exit;
                        }
                        if($info){
                            // 成功上传后 获取上传信息
                            // 输出 jpg
                            $info->getExtension();
                            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
                            $info->getSaveName();
                            // 输出 42a79759f284b767dfcb2a0197904287.jpg
                            $photo = $info->getFilename();
                            $imgurl = './public/uploads/'.$photo;//原大图路径,当时我获取的时候费了不少时间
                            $image = 	hinkImage::open($imgurl);
                            $image->thumb(400, 400,1)->save($imgurl);//生成缩略图、删除原图
                        }else{
                            // 上传失败获取错误信息
                            $file->getError();
                        }
                    }else{
                        $photo = '';
                    }
            if($photo !== ''){
                return ['code'=>1,'msg'=>'成功','photo'=>$photo];
            }else{
                return ['code'=>404,'msg'=>'失败'];
            }
        }
  • 相关阅读:
    SQLite无法使用drop column删除表字段解决办法
    Selenium之自动发送163邮件(转自https://www.cnblogs.com/zhang-da/p/12230415.html)
    frp 内网穿透
    smart.supor.com
    python colorama模块
    nohup和&后台运行,进程查看及终止
    Beef搭建并通过Nginx绑定域名
    How to Install Ruby on CentOS/RHEL 7/6
    Linux环境下安装python3
    启用IIS Express SSL(Https)的注意事项
  • 原文地址:https://www.cnblogs.com/huanghanyi/p/7885539.html
Copyright © 2020-2023  润新知