TP3.2 圖片上傳及縮略圖

基於TP自帶的上傳文件的類, Think/Upload.class.php

下面是上傳的具體方法

複製代碼

/**
 * 圖片上傳處理
 * @param [String] $path [保存文件夾名稱]
 * @param [String] $thumbWidth [縮略圖寬度]
 * @param [String] $thumbHeight [縮略圖高度]
 * @return [Array] [圖片上傳信息]
 */

function _upload($path,$thumbWidth = '' , $thumbHeight = '') {
    $obj = new \Think\Upload();// 實例化上傳類
    $obj->maxSize = C('UPLOAD_MAX_SIZE') ;// 設置附件上傳大小
    $obj->savePath =C('UPLOAD_PATH').$path.'/'; // 設置附件上傳目錄
    $obj->exts =  C('UPLOAD_EXTS');// 設置附件上傳類型
    $obj->saveName = array('uniqid','');//文件名規則
    $obj->replace = true;//存在同名文件覆蓋
    $obj->autoSub = true;//使用子目錄保存
    $obj->subName  = array('date','Ymd');//子目錄創建規則,
    $info = $obj->upload();
//    return $info;
    if(!$info) {
        return array('status' =>0, 'msg'=> $obj->getError() );
    }else{
        if($info){    //生成縮略圖

            $image = new \Think\Image();
            foreach($info as $file) {
                $thumb_file = C('UPLOAD_PATH')  . $file['savepath'] . $file['savename'];
                $save_path =  C('UPLOAD_PATH')  . $file['savepath'] . 'mini_' . $file['savename'];  //保存縮略圖的規則
                $image->open( $thumb_file )->thumb($thumbWidth,$thumbHeight,\Think\Image::IMAGE_THUMB_FILLED)->save($save_path);
                return array(
                    'status' => 1,
                    'savepath' => $file['savepath'],
                    'savename' => $file['savename'],
                    'pic_path' => $file['savepath'] . $file['savename'],
                    'mini_pic' => $file['savepath'] . 'mini_' .$file['savename']
                );
//                @unlink($thumb_file); //上傳生成縮略圖以後刪除源文件
            }
        }else{
            foreach($info as $file) {
                return array(
                    'status' => 1,
                    'savepath' => $file['savepath'],
                    'savename' => $file['savename'],
                    'pic_path' => $file['savepath'].$file['savename']
                );
            }
        }
    }
}

複製代碼

在配置文件中設置相關屬性

1

2

3

4

5

//圖片上傳

    'UPLOAD_MAX_SIZE' => 13058176, //最大上傳大小

    'UPLOAD_PATH' => './Uploads/', //文件上傳保存路徑

    //'UPLOAD_PATH' => './', //文件上傳保存路徑

    'UPLOAD_EXTS' => array('jpg','jpeg','gif','png'),

上傳:

  1、設置表單的enctype屬性  

  2、根目錄創建 Uploads 目錄 

  3、調用方法,傳參(保存的路徑,寬度,高度)

1

$upload = _upload('Content','300','300');  //文件上傳信息及縮略圖

完成後看下打印效果

 

文件路徑

mini_XXXXXXX.jpg 縮略圖完成

至此上傳文件及縮略圖就完成了 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章