Thinkphp5封装上传图片

Posted sfornt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thinkphp5封装上传图片相关的知识,希望对你有一定的参考价值。


<?php
namespace appapicontroller;
use thinkController;
use thinkDb;

class Plus extends Base{

    public function __construct(){
    parent::__construct();
    $this->logic=new apppluslogicImage();
}    //上传图片
    public function upload_img(){

        $file=$_FILES['myfile'];

        if(!$user_id){
            $user_id=$_REQUEST[user_id];
        }
        $data=$this->logic->Upload_img($file,$type,$user_id);
        echo json_encode($data);
    }
}
public function __construct(){
        $this->db= new appuserwebmodelPublicModel();
        // $this->img_url="http://".$_SERVER["HTTP_HOST"]."/lingdu/web/";
        $this->img_url=config('DOMAIN')."/";
    }    public function Upload_img($file,$type,$user_id){
        // echo $_SERVER["HTTP_HOST"];exit;
        ini_set('display_errors', 'Off');  
        error_reporting(E_ALL & ~ E_WARNING);

        if(!$type){
            $type="public";
        }
        if(!$user_id){
            $user_id="0";
        }
        if ($file==null){           
            $data['status']="10009";                
            return $data;               
            exit;           
        }       
        $tmp_type=$file['type'];              
        $uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png');  
        if(!in_array($tmp_type,$uptypes)){                  
            $data['status']="10006";            
        }else {     
            //var_dump($user_id);
            $fliedir="Uploads/";            
            mkdir($fliedir);            
            $fliedir=$fliedir."$type/";         
            mkdir($fliedir);                    
            $fliedir=$fliedir."$user_id/";          
            mkdir($fliedir);            
            $cur_time=uniqid()."-".time();
            $file_type=str_replace("image/","",$tmp_type);
            $file_name=$fliedir.$user_id.'-orogin-'.'-'.$type.'-'.$cur_time.".".$file_type;         
            move_uploaded_file($file["tmp_name"],$file_name);         
            $none=file_exists($file_name);                          
            //var_dump($file_name);                     
            if ($none!=null){
                $image = new 	hinkImage();
                $data["status"]=10001;    
                $data["img_orogin"]=$this->img_url.$file_name;   
                $image->open($file_name);       
                $img_thumb=$fliedir.$user_id.'-thumb'.'-'.$type.'-'.$cur_time.".".$file_type;           
                if ($type=="goods"){
                    // 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
                    $image->thumb(300, 300,	hinkImage::IMAGE_THUMB_FIXED)->save($img_thumb); 
                //  $image->thumb(800, 800,ThinkImage::IMAGE_THUMB_FIXED)->save($file_name); 
                }else {
                    $image->save($img_thumb); 
                }
                
                $data["img_thumb"]=$this->img_url.$img_thumb;                
            }else {             
                $data["status"]=10012;            
            }               
        }   

    //  dump($data);
        return $data;       
    }

以上是关于Thinkphp5封装上传图片的主要内容,如果未能解决你的问题,请参考以下文章

多图上传控制器及模型代码thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。

thinkphp5文件上传问题

Thinkphp5 删除上传文件

thinkphp5图片上传接口

thinkphp+layui多图上传thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。

thinkphp5.1+layui图片上传(前端部分.第一种)