>  기사  >  PHP 프레임워크  >  thinkphp5에서 이미지 처리 시 발생하는 문제 해결

thinkphp5에서 이미지 처리 시 발생하는 문제 해결

藏色散人
藏色散人앞으로
2021-05-18 16:46:433113검색

다음 튜토리얼 칼럼인 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;]);

이 확인에 대해 잘 알지 못하기 때문에 사진에서 확인했습니다. 이해한 후에는 이러한 내용의 의미를 알 수 있습니다

더 많은 업로드 파일 확인 규칙도 있습니다. include 검증 규칙

  • file 파일 객체인지 확인
  • image 이미지 파일 객체인지 확인
  • image:width,height[,type] 이미지 파일의 유형과 너비, 높이를 확인합니다
  • fileExt :zip,doc,… 파일 접미사 확인
  • fileMime:image /png,… 파일 형식 확인
  • fileSize:1024 파일 크기 확인

2. 이미지 파일 업로드 방법

파일은 여기에 업로드됩니다. :open()을 사용하면 이미지 형식이 됩니다. 이 둘은 형식이 다릅니다

이미지를 처리해야 하므로 먼저 이미지를 연 다음 처리하고 저장해야 합니다.

저장하려면 thinkphp에서 이미지를 저장하려면 이미지->저장(경로)을 사용하세요

하지만 처리할 필요가 없다면 파일->이동(경로)으로 직접 저장할 수 있습니다

위 내용은 thinkphp5에서 이미지 처리 시 발생하는 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제