thinkphp3.2.3多圖上傳並且生成多張縮略圖


html部分

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>圖片上傳</title>
</head>
<body>
<form enctype="multipart/form-data" action="__URL__/upload" method="post">
    <input type="file" name="photo[]" multiple>
    <input type="submit" value="提交">
</form>
</body>
</html>

php代碼

<?php
namespace Home\Controller;
use Think\Controller;

class IndexController extends Controller {
    public function upload() {
        $upload = new \Think\UploadFile();// 實例化上傳類
        $upload->maxSize = 3000000 ;// 設置附件上傳大小  C('UPLOAD_SIZE');
        $upload->savePath = './Uploads/' . 'thumb/'; // 設置附件上傳目錄
        $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 設置附件上傳類型
        $upload->saveRule = 'uniqid';
        $upload->uploadReplace = true; //是否存在同名文件是否覆蓋
        
        $upload->thumb = true; //是否對上傳文件進行縮略圖處理
        $upload->thumbMaxWidth = '300,600'; //縮略圖處理寬度
        $upload->thumbMaxHeight = '200,400'; //縮略圖處理高度
        $upload->thumbPrefix = 'm_,s_';  //生產2張縮略圖
        $upload->thumbPath = './Uploads/' . 'thumb/' . date('Ymd', time()) . '/'; //縮略圖保存路徑
         
        $upload->thumbRemoveOrigin = true; //上傳圖片后刪除原圖片
        $upload->autoSub = true; //是否使用子目錄保存圖片
        $upload->subType = 'date'; //子目錄保存規則
        $upload->dateFormat = 'Ymd'; //子目錄保存規則為date時時間格式
        
        if (!$upload->upload()) {// 上傳錯誤提示錯誤信息
            $this->error($upload->getError());
        } else {

     // 上傳成功 獲取上傳文件信息
            $info = $upload->getUploadFileInfo();
            foreach ( $info as $file ) {

       // 保存當前數據對象
                $model = M ( 'web_img' );
                $picname = $file['savename'];
                $picname = explode('/', $picname);
                $url1 = $picname[0] . '/' . 'm_' . $picname[1];
                $url2 = $picname[0] . '/' . 's_' . $picname[1];
                $temp["face"] = $file['savepath'].$url2;    //大縮略圖
                $temp["thumb"] = $file['savepath'].$url1;   //小縮略圖
                $temp["Addtime"] = date("Y/m/d H:i:s");
                $save=$model->add ( $temp );
            }
            if($save){
                $this->success('上傳成功!');
            }
        }
         
    }
}

 

多圖上傳幾個注意點:

1、<form enctype="multipart/form-data">
 
2、<input type="file" name="photo[]" multiple>
 
3、注意thinkphp3.2.2並沒有UploadFile,UploadImage 類 
要自己加入: 把他們放到ThinkPHP\Library\Think目錄下     下載我百度網盤點擊下載: UploadFile,UploadImage 類下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM