刚学的使用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(), // 上传驱动配置 );