解決thinkphp5圖片處理遇到的問題
以下由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 "失败"; } } }
封裝這個類別之後圖片的驗證就需要再控制器中驗證
1、圖片驗證時遇到的問題
我的圖片驗證:
$result = $this->validate(['file' => $file], ['file' => 'require|image|fileExt:png,jpg,gif'], ['file.require' => '请选择上传文件','file.image'=>'必须是图片哦','file.fileExt'=>'文件格式不对']);
我再圖片中驗證就是對這個驗證的不太熟悉,經過了解才知道這些內容的意義
更多的上傳檔案驗證規則也包含驗證規則
- file 驗證是否為File物件
- image 驗證是否為映像File物件
- image:width,height[,type] 驗證映像檔的類型和寬高
- fileExt:zip,doc,… 驗證檔案後綴
- #fileMime:image /png,…驗證文件類型
- fileSize:1024 驗證檔案大小
2、圖片檔案上傳方式
這裡面上傳的是文件,用Image: :open()進行開啟圖片,成為圖片格式,這兩種是不同的格式
我們要進行圖片處理所以要先打開圖片在處理在圖片保存,
在thinkphp中儲存圖片使用圖片->save(路徑)進行儲存
但是如果不用處理就可以直接檔案->move(路徑)進行儲存
#以上是解決thinkphp5圖片處理遇到的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

寶塔部署thinkphp5報錯的解決方法:1、開啟寶塔伺服器,安裝php pathinfo擴充並啟用;2、設定「.access」文件,內容為「RewriteRule ^(.*)$ index.php?s=/$1 [QSA ,PT,L]」;3、在網站管理裡面,啟用thinkphp的偽靜態即可。

thinkphp5 url重寫不行的解決方法:1、查看httpd.conf設定檔中是否載入了mod_rewrite.so模組;2、將AllowOverride None中的None改為All;3、修改Apache設定檔.htaccess為「RewriteRule ^ (.*)$ index.php [L,E=PATH_INFO:$1]」保存即可。

thinkphp5取得請求網址的方法:1.使用「\think\Request」類別的「$request = Request::instance();」方法取得目前的url資訊;2、透過自帶的助手函數「$request-> url()」取得包含網域的完整URL位址。

thinkphp5 post無法得到值是因為TP5是透過strpos函數在Header的content-type值中找出app/json字串的,其解決辦法就是設定Header的content-type值為app/json即可。

移除thinkphp5標題列icon的方法:1、找到thinkphp5框架public下的favicon.ico檔案;2、刪除該檔案或選擇另一張圖片命名改為favicon.ico,並取代原favicon.ico檔案即可。

thinkphp5提示控制器不存在的解決方法:1、檢查對應的控制器裡面的命名空間是否寫對,修改為正確的命名空間;2、打開對應的tp文件,修改類別名稱即可。

ThinkPHP5查詢昨天資料的方法:1、開啟ThinkPHP5相關檔案;2、透過表達式「db('table')->whereTime('c_time', 'yesterday')->select();」查詢昨天的資料即可。

thinkphp5設定報錯提示的方法:1、進入專案根目錄下的public資料夾,開啟index.php入口檔案;2、檢視偵錯模式開關的註解;3、將「APP_DEBUG」常數的值調整為true即可展示錯誤訊息提示。
