亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

封裝ThinkPHP的一個文件上傳方法

發布時間:2021-07-02 16:28:24 來源:億速云 閱讀:127 作者:chen 欄目:開發技術

這篇文章主要講解了“封裝ThinkPHP的一個文件上傳方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“封裝ThinkPHP的一個文件上傳方法”吧!

這陣子,對WBlog的上傳功能作了優化。改進后的上傳功能可以實現縮略圖上傳,圖片上傳,生成水印,文件上傳,并且可以在后臺對上傳的附件進行大小(文件大小),類型(文件類型),水印(針對圖片)的進行設置。此外還可以對上傳的文件進行分類保存到相應的文件夾里,方便管理。

下面是對改進后的上傳功能作簡約的說明。

縮略圖上傳

先前的縮略圖上傳功能使用了KindEditor的上傳組件,除非上傳之前對圖片進行縮略處理,不然上傳的是原圖,改進后的上傳功能可以通過系統對縮略圖的大小進行設置,不管你上傳的原圖有多大,都會生成設置的大小的圖片,并且自動刪除原圖,有效地減少垃圾信息的累積。上傳的縮略圖自動保存到Thumb文件夾

圖片上傳

上傳圖片,可以根據需要設置圖片的大小、上傳圖片的類型和添加水印。

文件上傳

如壓縮文件,文檔文件等,可根據需要添加上傳文件類型和大小。

添加水印

對上傳的圖片添加水印。

上面的上傳功能我把它封裝在模型類AttachModel.class.php里,用兩個方法搞定:

復制代碼 代碼如下:


/**     
    * 附件上傳:上傳圖片,縮略圖,文件     
    * @param string $model 上傳所在模塊     
    * @param bool $type 上傳文件的類型::image(圖片);thumb(縮略圖);file(文件)     
    */
            
public function upload($model = null, $type = 'image'){     
       //導入上傳類     
       import('ORG.NET.UploadFile');     
       $upload = new UploadFile();     
       $upload->saveRule = 'uniqid'; //設置上傳文件規則     
       $upload->maxSize = C('MAXSIZE')*1024*1024;   //上傳文件大小         
       $upload->allowExts = explode(',', C('ALLOWEXTS'));//文件類型     
               
       if ($model){     
           $upload->savePath = './Public/Uploads/'.$model.'/';     
           if (!file_exists($upload->savePath)) {     
             mkdir($upload->savePath);     
           }     
       }else{     
           $upload->savePath = './Public/Uploads/Thumb/';     
           if (!file_exists($upload->savePath)) {     
             mkdir($upload->savePath);     
           }     
       }     
       if (in_array($type,array('image','thumb'))){     
           $upload->thumb = true;     
           $upload->thumbRemoveOrigin  = true;// //刪除原圖     
           $upload->thumbPrefix = 'wb_';         
           $upload->thumbMaxWidth = $type=='thumb' ? C('THUMB_W') :C('IMAGE_W');//縮略圖寬度     
           $upload->thumbMaxHeight = $type=='thumb' ? C('THUMB_H') :C('IMAGE_H');//縮略圖高度         
                           
       }     
       if (!$upload->upload()) {     
           return $upload->getErrorMsg();     
       }else{     
           $uploadlist = $upload->getUploadFileInfo();     
           if(C('ISWATER') && $type=='image'){     
             import('ORG.Util.Image');     
             //給m_縮略圖添加水印, Image::water('原文件名','水印圖片地址')     
             foreach ($uploadlist as $key => $value){     
               Image::water($value['savepath'] . 'wb_' . $value['savename'], './Public/admin/images/water.png');     
            }     
           }     
       }     
       if (in_array($type,array('image','file'))){     
           return $this->_add($uploadlist,$model);     
       }else{     
           return $uploadlist[0]['savename'];//返回縮略圖保存名稱     
       }            
   }     
   /*     
    * 上傳的附件整合成attach所需數據,存入表并返回數組     
    * */
   private function _add($uploadlist,$module=''){     
       //$j = count($uploadlist);     
       $v = array();     
       foreach ($uploadlist as $key => $value){     
                   
           $v[$key]['name']        =   $value['name'];     
           $v[$key]['savename']    =   $value['savename'];     
           $v[$key]['savepath']    =   substr($value['savepath'], 2);     
           $v[$key]['size']        =   $value['size'];     
           $v[$key]['userId']      =   $_SESSION[C('USER_AUTH_KEY')];     
           $v[$key]['uploadTime']  =   time();     
           $v[$key]['alt']                 =   $_POST['alt'][$key];     
           $v[$key]['module']          =   $_POST['module'];//當前項目路徑      
           $v[$key]['recordId']    =   $_POST['recordId'];//當前項目路徑      
           $this->add($v[$key]);     
           if($this->thumb){     
                       
               $v[$key]['prefix']      =   $this->thumbPrefix;                   
           }     
           $v[$key]['id'] = M('Attach')->getLastInsID();                 
       }     
       return $v;     
}

感謝各位的閱讀,以上就是“封裝ThinkPHP的一個文件上傳方法”的內容了,經過本文的學習后,相信大家對封裝ThinkPHP的一個文件上傳方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余干县| 平凉市| 大悟县| 应城市| 襄汾县| 凤翔县| 那坡县| 双流县| 武乡县| 子长县| 通城县| 游戏| 永城市| 双流县| 乌拉特后旗| 六盘水市| 台安县| 文昌市| 喀喇| 灵丘县| 建始县| 曲松县| 岳普湖县| 通辽市| 崇明县| 霍山县| 潍坊市| 砀山县| 黑龙江省| 界首市| 介休市| 通化市| 阜康市| 错那县| 连州市| 三门峡市| 安图县| 合江县| 响水县| 凤冈县| 丰县|