刚学的使用ThinkPHP框架简单上传附件(图片,文档,视频等文件)
首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的几个函数
1:getError() 获取上传错误信息
2:uploadOne() 上传单个文件
3:upload() 上传多个文件
4:rootPath 上传文件保存根路径
代码如下
前台:
1
2
3
4
|
< td >商品图片</ td >
< td >
< input type = "file" name = "goods_pic" />
</ td >
|
控制器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//处理上传附件图片
//判断是否上传 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()中重写即可!
父类上传配置参数如下(可根据自己要求重写):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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 (), // 上传驱动配置
);
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。