1. 程式人生 > >TP上傳檔案圖片總結

TP上傳檔案圖片總結

注意上傳檔案表單的設定:

下面是一個帶有附件上傳的表單提交:
<form action="__URL__/upload" enctype="multipart/form-data" method="post" >
<input type="text" name="name" />
<input type="file" name="photo" />
<input type="submit" value="提交" >
</form>

實現案例:

ThinkPHP檔案上傳操作使用Think\Upload類,假設前面的表單提交到當前控制器的upload方法,我們來看下upload方法的實現程式碼:

public function upload(){
    $upload = new \Think\Upload();// 例項化上傳類
    $upload->maxSize   =     3145728 ;// 設定附件上傳大小
    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳型別
    $upload->rootPath  =     './Uploads/'; // 設定附件上傳根目錄
    $upload->savePath  =     ''; // 設定附件上傳(子)目錄
    // 上傳檔案 
    $info   =   $upload->upload();
    if(!$info) {// 上傳錯誤提示錯誤資訊
        $this->error($upload->getError());
    }else{// 上傳成功
        $this->success('上傳成功!');
    }
}


上傳類對圖片檔案的上傳安全做了支援,如果企圖上傳非法的影象檔案,系統會提示 非法影象檔案。 為了更好的使用上傳功能,建議你的伺服器開啟finfo模組支援(拓展:finfo需開啟php配置檔案中的 php_finfo.dll 拓展,使用finfo_open() 和finfo_file() 兩個函式來操作)。

上傳檔案資訊
如果失敗,返回false,並且用getError方法獲取錯誤提示資訊;如果上傳成功,就返回成功上傳的檔案資訊陣列。

$upload = new \Think\Upload();// 例項化上傳類
$upload->maxSize   =     3145728 ;// 設定附件上傳大小
$upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳型別
$upload->rootPath  =      './Uploads/'; // 設定附件上傳根目錄
$upload->savePath  =      ''; // 設定附件上傳(子)目錄
// 上傳檔案 
$info   =   $upload->upload();
if(!$info) {// 上傳錯誤提示錯誤資訊
    $this->error($upload->getError());
}else{// 上傳成功 獲取上傳檔案資訊
    foreach($info as $file){
        echo $file['savepath'].$file['savename'];
    }
}

支援多檔案上傳

表單形式:

<input type='file'  name='photo[]'>
<input type='file'  name='photo[]'>
<input type='file'  name='photo[]'>