• ThinkPHP 5 文件上传及指定宽高生成缩略图公共方法


    这个是非常常用的案例,ThinkPHP 5 文件上传及指定宽高生成缩略图公共方法
    /**
    * 单文件上传
    * name:表单上传文件的名字
    * ext: 文件允许的后缀,字符串形式
    * path:文件保存目录
    */
    public function file_upload($name,$ext,$path){
    $dir_path=ROOT_PATH.'/public/uploads/'.$path;
    if (!is_dir($dir_path))mkdir($dir_path, 0777);// 使用最大权限0777创建文件
    $file = request()->file($name);
    $info = $file->validate(['size'=>1572864,'ext'=>$ext])->move($dir_path,true,false);
    if($info){
    // 成功上传后 获取上传信息
    $file_path = $info->getSaveName();
    $data['file_path'] = '/uploads/'.$path.'/'.$info->getSaveName();
    }else{
    // 上传失败获取错误信息
    $data['file_path'] =$file->getError();
    }
    return $data;
    }

    /**
    * 图片缩率图处理
    * file_path:文件路径
    * width :目标宽度
    * height:目标高
    * path:文件保存目录 : 需事先手动创建
    */
    public function file_upload_thumb($file_path,$width,$height,$path){
    $fiel_url = ROOT_PATH."/public".$file_path;
    $image = hinkImage::open($fiel_url);
    $save_url = '/uploads/'.$path."/".sha1($fiel_url)."_".$width."_".$height.".".$image->type();
    $save_name = ROOT_PATH."/public".$save_url;
    $image->thumb($width, $height)->save($save_name);
    return $save_url;
    }
    
    
    /*
    * 图片上传接口
    */
    public function img_upload(){

    if(!empty($_FILES["file_img"]["name"])){
    $file_mes = $this->file_upload('file_img','jpg,png,gif,jpeg','gift');
    $file_path = $file_mes['file_path'];
    switch ($upload_type) {
    case '1':
    $return_data['prize_img'] = $file_path;
    $return_data['prize_img_view'] = Config::get("config.host_url").$file_path;
    $return_data['prize_img_400'] = $this->file_upload_thumb($file_path,400,400,'gift_thumb');
    $return_data['prize_img_200'] = $this->file_upload_thumb($file_path,200,200,'gift_thumb');
    $return_data['prize_img_150'] = $this->file_upload_thumb($file_path,150,150,'gift_thumb');
    break;
    default:
    $return_data['img_path'] ='';
    break;
    }
    return json(['code' => '1', 'message' => '上传成功','result'=>$return_data]);
    }else{
    return json(['code' => '2', 'message' => '图片不能为空!','result'=>null]);
    }

    }
  • 相关阅读:
    在django如何使用中文
    《Jamie Zawinski访谈:在折腾中成长》读后感
    django处理静态文件
    [转]敏捷就循环往复的不断改进 & 测试不是寻找Bug的游戏 & 成功实施敏捷的十二种模式
    event.preventDefault()
    字符设备驱动Linux异常处理体系结构
    2.字符设备驱动按键中断及休眠
    内核中的宏定义__init、__initdata和__exit、__exitdata
    阻塞和非阻塞,同步和异步的概念辨析
    1.字符设备驱动Linux中断处理体系结构
  • 原文地址:https://www.cnblogs.com/luenmicro/p/11324063.html
Copyright © 2020-2023  润新知