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'=>'文件格式不对']);
この検証に慣れていないため、画像で検証しましたこれらの内容の意味
その他のアップロード ファイル検証ルールには、ファイルであるかどうかを検証するための検証ルールも含まれています
画像を処理したいので、画像を保存する前に、最初に画像を開いて処理する必要があります。
thinkphp では、画像を保存するには、Picture->save(path) を使用して保存します。
しかし、そうでない場合は、処理する必要はありません。[ファイル]->[移動(パス)]
以上がthinkphp5 の画像処理で発生した問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。