TP上傳檔案圖片總結
阿新 • • 發佈:2019-01-03
注意上傳檔案表單的設定:
下面是一個帶有附件上傳的表單提交:
<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[]'>