ホームページ > PHPフレームワーク > ThinkPHP > thinkphp5 の画像処理で発生した問題を解決する

thinkphp5 の画像処理で発生した問題を解決する

藏色散人
リリース: 2021-05-19 09:04:52
転載
3241 人が閲覧しました

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().&#39;.png&#39;;
        $image=Image::open($file);
        switch($type){
            case &#39;advertise&#39;:
                $deal=$image->thumb(20,40,6);
                $link=&#39;public&#39;.DS.&#39;static&#39;.DS.&#39;picture&#39;.DS.$type.DS.$saveName.&#39;.png&#39;;
                break;
            case &#39;user&#39;:
                $deal=$image->thumb(40,40,6);
                $link=&#39;public&#39;.DS.&#39;static&#39;.DS.&#39;picture&#39;.DS.$type.DS.$saveName.&#39;.png&#39;;
                break;
        }
        //上传图片
        if($deal->save(ROOT_PATH.$link)){
            //echo $deal->width()."<br/>".$deal->height();
            return $link;
        }else{
            echo "失败";
        }
    }
}
ログイン後にコピー

このクラスをカプセル化した後、イメージの検証を確認する必要がありますコントローラ内


1. 画像検証中に発生した問題

私の画像検証:

    $result = $this->validate([&#39;file&#39; => $file],
        [&#39;file&#39; => &#39;require|image|fileExt:png,jpg,gif&#39;],
        [&#39;file.require&#39; => &#39;请选择上传文件&#39;,&#39;file.image&#39;=>&#39;必须是图片哦&#39;,&#39;file.fileExt&#39;=>&#39;文件格式不对&#39;]);
ログイン後にコピー

この検証に慣れていないため、画像で検証しましたこれらの内容の意味


その他のアップロード ファイル検証ルールには、ファイルであるかどうかを検証するための検証ルールも含まれています

ファイルobject
  • 画像かどうかを確認する画像 ファイル オブジェクト
  • image:width,height[,type] 画像ファイルの種類、幅、高さを確認します
  • fileExt :zip,doc,… ファイルのサフィックスを確認します
  • fileMime:image /png,… ファイル タイプを確認します
  • fileSize:1024 ファイル サイズを確認します
  • 2. 画像ファイルのアップロード方法

ここにファイルをアップロードします。Image: :open() で画像を開き、画像形式になります。これら 2 つは異なる形式です。

画像を処理したいので、画像を保存する前に、最初に画像を開いて処理する必要があります。

thinkphp では、画像を保存するには、Picture->save(path) を使用して保存します。

しかし、そうでない場合は、処理する必要はありません。[ファイル]->[移動(パス)]

を使用して直接保存できます。

以上がthinkphp5 の画像処理で発生した問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート