【TP5.1】圖片上傳

author:咔咔php

wechat:fangkangfk數組

 

圖片上傳是一個系統必須也是很重要的功能,下來我們實現一下,先來一個簡單的,可是不是很完美的工具

 

前臺代碼this

 控制器spa

在控制器中咱們先來打印一下圖片信息code

打印出來的信息是think\file的 一個類orm

 

think\file這個文件只有你想不到沒有他作不到的事情,咱們就先看一下這個方法 圖片

 

 

 使用getInfo能夠獲取到這個圖片的信息get

 使用move進行上傳源碼

 

這就是簡單的上傳,可是咱們在項目中可不是這樣是使用的,哈哈!!!因此咱們須要加點料,來看下面一頓騷操做

 

建立albumService這個服務

建立上傳upload工具類,爲了全讓圖片顯示代碼但是費了勁了,能夠分享分享博客給大家的朋友呦!給大牛就沒必要了...

 

 

 

 

獻上一份源碼:
 

<?php

namespace data\util;

class Upload
{
    /**
     * @var 文件信息think\file這個類
     */
    private $file;
    /**
     * @var 上傳圖片的目錄
     */
    private $path;
    /**
     * 上傳文件規則
     */
    private $validate =[
        'size' => 500000,
        'ext'  => 'jpg,png,gif,jpeg',
    ];

    /**
     * 文件上傳
     *
     * @param file think\File
     * @path  上傳的目錄  upload\goods
     * @return array
     */
    public function move($file,$path)
    {
        $this->file = $file;
        // 獲取上傳的文件名
        $fileName = $this->getFileName($path);
        // 文件保存的地址
        $save = $this->getFilePath();
        // 判斷保存的目錄是否存在
        if(!file_exists($save)){
            mkdir($save,777,true);
        }
        // 文件保存後的名字加類型
        $image = $fileName['saveName'].'.'.$fileName['fileSuffix'];
        // 開始上傳  參數一:上傳路徑       參數二:文件名
        $info = $file->validata($this->validate)->move($save,$image);
        // 獲取上傳後的文件名
        $this->path = $save.'.'.$image;
        return (info) ? true : false;
    }

    /**
     * 配置保存路徑
     *
     * @return array
     */
    public function getFilePath($path)
    {
        return ROOT.'/'.$path;
    }

    /**
     * 獲取上傳文件的信息  名字,類型,類型
     *
     * @return array
     */
    public function getFileName()
    {
        // 獲取文件信息
        $name = $this->file->getInfo('name');
        // 問件名1.jpg   因此須要轉數組獲取
        $fileName = explode('.',$name);
        return [
            // 文件名
            'formerlyName' => $fileName[0],
            // 保存後的文件名
            'saveName' => $fileName[0].time(),
            // 文件後綴
            'fileSuffix' => $fileName[1]
        ];
    }

    /**
     * 保存後的文件路徑
     *
     * @return array
     */
    public function functionName($flag = true)
    {
        return ($flag) ? $this->path : ROOT.'/'.$this->path;
    }
}

 

明天在補分紅不一樣大小的圖片入庫

相關文章
相關標籤/搜索