以下由thinkphp教學專欄為大家介紹thinkphp5圖片處理中遇到的問題,希望對需要的朋友有幫助!
我額外把圖片的處理和上傳封裝成了一個類,返回保存的圖片路徑
在圖片返回和保存路徑時不能是絕對路徑。
這樣會導致圖片打不開,應該是相對於這個項目跟目錄的相對路徑
<?php namespace app\common\vendor; use think\Image; use think\Request; class Picture { public function Up($file,$type)//获取图片,验证 { //处理图片 $request=new Request(); $saveName=$request->time().'.png'; $image=Image::open($file); switch($type){ case 'advertise': $deal=$image->thumb(20,40,6); $link='public'.DS.'static'.DS.'picture'.DS.$type.DS.$saveName.'.png'; break; case 'user': $deal=$image->thumb(40,40,6); $link='public'.DS.'static'.DS.'picture'.DS.$type.DS.$saveName.'.png'; break; } //上传图片 if($deal->save(ROOT_PATH.$link)){ //echo $deal->width()."<br/>".$deal->height(); return $link; }else{ echo "失败"; } } }
封裝這個類別之後圖片的驗證就需要再控制器中驗證
我的圖片驗證:
$result = $this->validate(['file' => $file], ['file' => 'require|image|fileExt:png,jpg,gif'], ['file.require' => '请选择上传文件','file.image'=>'必须是图片哦','file.fileExt'=>'文件格式不对']);
我再圖片中驗證就是對這個驗證的不太熟悉,經過了解才知道這些內容的意義
更多的上傳檔案驗證規則也包含驗證規則
這裡面上傳的是文件,用Image: :open()進行開啟圖片,成為圖片格式,這兩種是不同的格式
我們要進行圖片處理所以要先打開圖片在處理在圖片保存,
在thinkphp中儲存圖片使用圖片->save(路徑)進行儲存
但是如果不用處理就可以直接檔案->move(路徑)進行儲存
#以上是解決thinkphp5圖片處理遇到的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!