解決thinkphp5中圖片處理中遇到的問題

下面由thinkphp教程欄目給大家介紹thinkphp5中圖片處理中遇到的問題,希望對需要的朋友有所幫助!

圖片處理中遇到的問題

我額外把圖片的處理和上傳封裝成了一個類,返回保存的圖片路徑

在圖片返回和保存路徑時不能是絕對路徑。

這樣會導(dǎo)致圖片打不開,應(yīng)該是相對于這個項目跟目錄的相對路徑

<?php namespace appcommonvendor;  use thinkImage; use thinkRequest;  class Picture {     public function Up($file,$type)//獲取圖片,驗證     {         //處理圖片         $request=new Request();         $saveName=$request->time().'.png'; ????????$image=Image::open($file); ????????switch($type){ ????????????case?'advertise': ????????????????$deal=$image-&gt;thumb(20,40,6); ????????????????$link='public'.DS.'static'.DS.'picture'.DS.$type.DS.$saveName.'.png'; ????????????????break; ????????????case?'user': ????????????????$deal=$image-&gt;thumb(40,40,6); ????????????????$link='public'.DS.'static'.DS.'picture'.DS.$type.DS.$saveName.'.png'; ????????????????break; ????????} ????????//上傳圖片 ????????if($deal-&gt;save(ROOT_PATH.$link)){ ????????????//echo?$deal-&gt;width()."<br>".$deal-&gt;height(); ????????????return?$link; ????????}else{ ????????????echo?"失敗"; ????????} ????} }

封裝這個類之后圖片的驗證就需要再控制器中驗證

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

1、圖片驗證時遇到的問題

我的圖片驗證:

????$result?=?$this-&gt;validate(['file'?=&gt;?$file], ????????['file'?=&gt;?'require|image|fileExt:png,jpg,gif'], ????????['file.require'?=&gt;?'請選擇上傳文件','file.image'=&gt;'必須是圖片哦','file.fileExt'=&gt;'文件格式不對']);

我再圖片中驗證就是對這個驗證的不太熟悉,經(jīng)過了解才知道這些內(nèi)容的含義

更多的上傳文件驗證規(guī)則還包括 驗證規(guī)則

  • file 驗證是否為File對象
  • image 驗證是否為圖像File對象
  • image:width,height[,type] 驗證圖像文件的類型和寬高
  • fileExt:zip,doc,… 驗證文件后綴
  • fileMime:image/png,… 驗證文件類型
  • fileSize:1024 驗證文件大小

2、圖片文件上傳方式

這里面上傳的是文件,用Image::open()進行打開圖片,成為圖片格式,這兩種是不同的格式

我們要進行圖片處理所以要先打開圖片在處理在圖片保存,

在thinkphp中保存圖片使用圖片->save(路徑)進行保存

但是如果不用處理就可以直接文件->move(路徑)進行保存

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊11 分享