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 = \think\Image::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]);
 }

 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM