溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-05-19 09:30:48 來源:億速云 閱讀:324 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)如何解決thinkphp5中圖片處理遇到的問題,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

圖片處理中遇到的問題

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

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

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

<?php
namespace app\common\vendor;

use think\Image;
use think\Request;

class Picture
{
    public function Up($file,$type)//獲取圖片,驗(yàn)證
    {
        //處理圖片
        $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 "失敗";
        }
    }
}

封裝這個(gè)類之后圖片的驗(yàn)證就需要再控制器中驗(yàn)證

1、圖片驗(yàn)證時(shí)遇到的問題

我的圖片驗(yàn)證:

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

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

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

  • file 驗(yàn)證是否為File對象

  • image 驗(yàn)證是否為圖像File對象

  • image:width,height[,type] 驗(yàn)證圖像文件的類型和寬高

  • fileExt:zip,doc,… 驗(yàn)證文件后綴

  • fileMime:image/png,… 驗(yàn)證文件類型

  • fileSize:1024 驗(yàn)證文件大小

2、圖片文件上傳方式

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

我們要進(jìn)行圖片處理所以要先打開圖片在處理在圖片保存,

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

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

關(guān)于“如何解決thinkphp5中圖片處理遇到的問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI