溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用ThinkPHP怎么實(shí)現(xiàn)一個(gè)附件上傳功能

發(fā)布時(shí)間:2021-01-28 09:40:36 來源:億速云 閱讀:224 作者:Leah 欄目:開發(fā)技術(shù)

利用ThinkPHP怎么實(shí)現(xiàn)一個(gè)附件上傳功能?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的幾個(gè)函數(shù)

1:getError() 獲取上傳錯(cuò)誤信息

2:uploadOne() 上傳單個(gè)文件

3:upload() 上傳多個(gè)文件

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); //完全限定名稱 實(shí)例化對象 

   //uploadOne()方法執(zhí)行成功后會(huì)把附件(在服務(wù)器上)的名字和路徑等相關(guān)信息返回
   $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ù)進(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, //檢測文件是否存在回調(diào),如果存在返回文件信息數(shù)組
  'driver'  => '', // 文件上傳驅(qū)動(dòng)
  'driverConfig' => array(), // 上傳驅(qū)動(dòng)配置
 );

關(guān)于利用ThinkPHP怎么實(shí)現(xiàn)一個(gè)附件上傳功能問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI