這篇文章主要為大家詳細介紹了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['goods_pic']['error']<4) { //上传 $cfg = array( 'rootPath' => './Public/uploads/', //保存根路径 ); $upload = new \Think\Upload($cfg); //完全限定名称 实例化对象 //uploadOne()方法执行成功后会把附件(在服务器上)的名字和路径等相关信息返回 $file_info=$upload->uploadOne($_FILES['goods_pic']); //把上传好的附件存到数据库 拼接路径 //$upload->rootPath通过父类upload.class.php中的__get()方法获取配置中的rootPath $_POST['goods_big_img']=$upload->rootPath.$file_info['savepath'].$file_info['savename']; }
如果對上傳附件有其他需求,可參考父類別Upload.class.php中上傳設定config參數進行選擇所需的參數,只需在上面程式碼$ cfg=array()中重寫即可!
父類別上傳設定參數如下(可依自己要求重寫):
##
private $config = array( 'mimes' => array(), //允许上传的文件MiMe类型 'maxSize' => 0, //上传的文件大小限制 (0-不做限制) 'exts' => array(), //允许上传的文件后缀 'autoSub' => true, //自动子目录保存文件 'subName' => array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组 'rootPath' => './Uploads/', //保存根路径 'savePath' => '', //保存路径 'saveName' => array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组 'saveExt' => '', //文件保存后缀,空则使用原后缀 'replace' => false, //存在同名是否覆盖 'hash' => true, //是否生成hash编码 'callback' => false, //检测文件是否存在回调,如果存在返回文件信息数组 'driver' => '', // 文件上传驱动 'driverConfig' => array(), // 上传驱动配置 );相關推薦:
thinkPHP實作遞歸循環欄目並依照樹狀結構無限極輸出的方法
#
以上是ThinkPHP實作附件上傳功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!