Maison  >  Article  >  cadre php  >  Résoudre les problèmes rencontrés dans le traitement d'image dans thinkphp5

Résoudre les problèmes rencontrés dans le traitement d'image dans thinkphp5

藏色散人
藏色散人avant
2021-05-18 16:46:433186parcourir

La colonne tutorielle suivante de thinkphp vous présentera les problèmes rencontrés dans le traitement d'image dans thinkphp5. J'espère qu'elle sera utile aux amis dans le besoin !

Problèmes rencontrés dans le traitement des images

J'encapsule en outre le traitement et le téléchargement des images dans la classe A est créé pour renvoyer le chemin de l'image enregistrée

Lorsque l'image est renvoyée et enregistrée, le chemin ne peut pas être un chemin absolu.

Cela empêchera l'ouverture de l'image. Il doit s'agir d'un chemin relatif par rapport au projet et au répertoire

<?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 "失败";
        }
    }
}

Après avoir encapsulé cette classe, la vérification de l'image doit être vérifiée dans le contrôleur

1. Problèmes rencontrés lors de la vérification de l'image

Ma vérification de l'image :

    $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;]);

Je l'ai vérifié sur l'image car je ne connais pas cette vérification. Je ne le connais qu'après l'avoir compris. La signification de ces contenus

Plus de règles de vérification des fichiers téléchargés incluent également des règles de vérification

  • fichier pour vérifier s'il s'agit d'un objet Fichier
  • 🎜>
  • image pour vérifier s'il s'agit d'un objet fichier image
  • image:width,height[,type] Vérifiez le type, la largeur et la hauteur du fichier image
  • fileExt:zip ,doc,… Vérifiez le suffixe du fichier
  • fileMime:image /png,… Vérifiez le type de fichier
fileSize:1024 Vérifiez la taille du fichier

2. Téléchargement du fichier image

Les fichiers sont téléchargés ici, utilisez Image : :open() ouvre l'image et devient le format de l'image. Ces deux formats sont différents

Nous voulons traiter l'image, nous devons donc le faire. ouvrez d'abord l'image et traitez-la avant de l'enregistrer

dans thinkphp Pour enregistrer l'image, utilisez picture->save(path) pour enregistrer

, mais si vous n'en avez pas besoin. pour le traiter, vous pouvez directement enregistrer le fichier->move(path)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer