首頁 >後端開發 >php教程 >ThinkPHP實作附件上傳功能

ThinkPHP實作附件上傳功能

不言
不言原創
2018-05-05 15:18:461616瀏覽

這篇文章主要為大家詳細介紹了ThinkPHP實現附件上傳功能,圖片,文檔,視頻等文件進行上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下

#剛學的使用ThinkPHP框架簡單上傳附件(圖片,文檔,視頻等文件)

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

1:getError() 取得上傳錯誤訊息

2:uploadOne() 上傳單一檔案

3:upload() 上傳多個檔案

4:rootPath 上傳檔案儲存根路徑

程式碼如下

前台:

<td>商品图片</td>
<td>
 <input type="file" name="goods_pic" />
</td>

控制器

//处理上传附件图片
  
  //判断是否上传 4:没有上传附件
  if ($_FILES[&#39;goods_pic&#39;][&#39;error&#39;]<4) {
   
   //上传
   $cfg = array(
   &#39;rootPath&#39; => &#39;./Public/uploads/&#39;, //保存根路径
   );
   $upload = new \Think\Upload($cfg); //完全限定名称 实例化对象 

   //uploadOne()方法执行成功后会把附件(在服务器上)的名字和路径等相关信息返回
   $file_info=$upload->uploadOne($_FILES[&#39;goods_pic&#39;]);
   
   //把上传好的附件存到数据库 拼接路径
   //$upload->rootPath通过父类upload.class.php中的__get()方法获取配置中的rootPath
   $_POST[&#39;goods_big_img&#39;]=$upload->rootPath.$file_info[&#39;savepath&#39;].$file_info[&#39;savename&#39;];
  }

如果對上傳附件有其他需求,可參考父類別Upload.class.php中上傳設定config參數進行選擇所需的參數,只需在上面程式碼$ cfg=array()中重寫即可!

父類別上傳設定參數如下(可依自己要求重寫):

##

private $config = array(
  &#39;mimes&#39;   => array(), //允许上传的文件MiMe类型
  &#39;maxSize&#39;  => 0, //上传的文件大小限制 (0-不做限制)
  &#39;exts&#39;   => array(), //允许上传的文件后缀
  &#39;autoSub&#39;  => true, //自动子目录保存文件
  &#39;subName&#39;  => array(&#39;date&#39;, &#39;Y-m-d&#39;), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
  &#39;rootPath&#39;  => &#39;./Uploads/&#39;, //保存根路径
  &#39;savePath&#39;  => &#39;&#39;, //保存路径
  &#39;saveName&#39;  => array(&#39;uniqid&#39;, &#39;&#39;), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
  &#39;saveExt&#39;  => &#39;&#39;, //文件保存后缀,空则使用原后缀
  &#39;replace&#39;  => false, //存在同名是否覆盖
  &#39;hash&#39;   => true, //是否生成hash编码
  &#39;callback&#39;  => false, //检测文件是否存在回调,如果存在返回文件信息数组
  &#39;driver&#39;  => &#39;&#39;, // 文件上传驱动
  &#39;driverConfig&#39; => array(), // 上传驱动配置
 );

相關推薦:


thinkPHP實作遞歸循環欄目並依照樹狀結構無限極輸出的方法

#thinkphp實作檔案上傳和檔案下載


#

以上是ThinkPHP實作附件上傳功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn