ThinkPHP实现附件上传功能
刚学的使用ThinkPHP框架简单上传附件(图片,文档,视频等文件)
首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的几个函数
1:getError()获取上传错误信息
2:uploadOne()上传单个文件
3:upload()上传多个文件
4:rootPath上传文件保存根路径
代码如下
前台:
商品图片
控制器
//处理上传附件图片 //判断是否上传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(),//上传驱动配置 );
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。