利用ThinkPHP怎么實(shí)現(xiàn)一個(gè)附件上傳功能?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來(lái)客戶和效益!創(chuàng)新互聯(lián)建站為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,網(wǎng)站制作、網(wǎng)站設(shè)計(jì)負(fù)責(zé)任的成都網(wǎng)站制作公司!首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的幾個(gè)函數(shù)
1:getError() 獲取上傳錯(cuò)誤信息
2:uploadOne() 上傳單個(gè)文件
3:upload() 上傳多個(gè)文件
4:rootPath 上傳文件保存根路徑
代碼如下
前臺(tái):
商品圖片
控制器
//處理上傳附件圖片 //判斷是否上傳 4:沒有上傳附件 if ($_FILES['goods_pic']['error']<4) { //上傳 $cfg = array( 'rootPath' => './Public/uploads/', //保存根路徑 ); $upload = new \Think\Upload($cfg); //完全限定名稱 實(shí)例化對(duì)象 //uploadOne()方法執(zhí)行成功后會(huì)把附件(在服務(wù)器上)的名字和路徑等相關(guān)信息返回 $file_info=$upload->uploadOne($_FILES['goods_pic']); //把上傳好的附件存到數(shù)據(jù)庫(kù) 拼接路徑 //$upload->rootPath通過(guò)父類upload.class.php中的__get()方法獲取配置中的rootPath $_POST['goods_big_img']=$upload->rootPath.$file_info['savepath'].$file_info['savename']; }
如果對(duì)上傳附件有其他要求,可參考父類Upload.class.php中上傳配置config參數(shù)進(jìn)行選擇需要的參數(shù),只需在上面代碼$cfg=array()中重寫即可!
父類上傳配置參數(shù)如下(可根據(jù)自己要求重寫):
private $config = array( 'mimes' => array(), //允許上傳的文件MiMe類型 'maxSize' => 0, //上傳的文件大小限制 (0-不做限制) 'exts' => array(), //允許上傳的文件后綴 'autoSub' => true, //自動(dòng)子目錄保存文件 'subName' => array('date', 'Y-m-d'), //子目錄創(chuàng)建方式,[0]-函數(shù)名,[1]-參數(shù),多個(gè)參數(shù)使用數(shù)組 'rootPath' => './Uploads/', //保存根路徑 'savePath' => '', //保存路徑 'saveName' => array('uniqid', ''), //上傳文件命名規(guī)則,[0]-函數(shù)名,[1]-參數(shù),多個(gè)參數(shù)使用數(shù)組 'saveExt' => '', //文件保存后綴,空則使用原后綴 'replace' => false, //存在同名是否覆蓋 'hash' => true, //是否生成hash編碼 'callback' => false, //檢測(cè)文件是否存在回調(diào),如果存在返回文件信息數(shù)組 'driver' => '', // 文件上傳驅(qū)動(dòng) 'driverConfig' => array(), // 上傳驅(qū)動(dòng)配置 );
關(guān)于利用ThinkPHP怎么實(shí)現(xiàn)一個(gè)附件上傳功能問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。