ThinkPHP實現(xiàn)附件上傳功能
剛學的使用ThinkPHP框架簡單上傳附件(圖片,文檔,視頻等文件)
首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的幾個函數(shù)
1:getError() 獲取上傳錯誤信息
2:uploadOne() 上傳單個文件
3:upload() 上傳多個文件
4:rootPath 上傳文件保存根路徑
代碼如下
前臺:
<td>商品圖片</td> <td> <input type="file" name="goods_pic" /> </td>
控制器
//處理上傳附件圖片
//判斷是否上傳 4:沒有上傳附件
if ($_FILES['goods_pic']['error']<4) {
//上傳
$cfg = array(
'rootPath' => './Public/uploads/', //保存根路徑
);
$upload = new \Think\Upload($cfg); //完全限定名稱 實例化對象
//uploadOne()方法執(zhí)行成功后會把附件(在服務器上)的名字和路徑等相關信息返回
$file_info=$upload->uploadOne($_FILES['goods_pic']);
//把上傳好的附件存到數(shù)據(jù)庫 拼接路徑
//$upload->rootPath通過父類upload.class.php中的__get()方法獲取配置中的rootPath
$_POST['goods_big_img']=$upload->rootPath.$file_info['savepath'].$file_info['savename'];
}
如果對上傳附件有其他要求,可參考父類Upload.class.php中上傳配置config參數(shù)進行選擇需要的參數(shù),只需在上面代碼$cfg=array()中重寫即可!
父類上傳配置參數(shù)如下(可根據(jù)自己要求重寫):
private $config = array(
'mimes' => array(), //允許上傳的文件MiMe類型
'maxSize' => 0, //上傳的文件大小限制 (0-不做限制)
'exts' => array(), //允許上傳的文件后綴
'autoSub' => true, //自動子目錄保存文件
'subName' => array('date', 'Y-m-d'), //子目錄創(chuàng)建方式,[0]-函數(shù)名,[1]-參數(shù),多個參數(shù)使用數(shù)組
'rootPath' => './Uploads/', //保存根路徑
'savePath' => '', //保存路徑
'saveName' => array('uniqid', ''), //上傳文件命名規(guī)則,[0]-函數(shù)名,[1]-參數(shù),多個參數(shù)使用數(shù)組
'saveExt' => '', //文件保存后綴,空則使用原后綴
'replace' => false, //存在同名是否覆蓋
'hash' => true, //是否生成hash編碼
'callback' => false, //檢測文件是否存在回調(diào),如果存在返回文件信息數(shù)組
'driver' => '', // 文件上傳驅(qū)動
'driverConfig' => array(), // 上傳驅(qū)動配置
);
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Laravel框架使用monolog_mysql實現(xiàn)將系統(tǒng)日志信息保存到mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了Laravel框架使用monolog_mysql實現(xiàn)將系統(tǒng)日志信息保存到mysql數(shù)據(jù)庫的方法,簡單介紹了monolog_mysql的安裝、配置、數(shù)據(jù)庫遷移、日志生成、mysql寫入等相關操作技巧,需要的朋友可以參考下2018-08-08
thinkphp框架page類與bootstrap分頁(美化)
這篇文章主要介紹了thinkphp框架page類與bootstrap分頁(美化) ,需要的朋友可以參考下2017-06-06
PHP 使用pcntl和libevent 實現(xiàn)Timer功能
PHP 中實現(xiàn)Timer功能,中間使用到了php多線程,本文給出來pcntl的解釋。2013-10-10

