首页 > PHP教程 > php开发知识文章

PHP--ThinkPHP 3.2框架文件上传类

本文介绍PHP--ThinkPHP 3.2框架文件上传类的使用,简单上传文件(图片,文档,视频等文件)

PHP--ThinkPHP 3.2框架文件上传类

ThinkPHP文件上传操作使用Think\Upload类,了解tp框架中Upload.class.php中的几个函数:

1:getError() 获取上传错误信息

2:uploadOne() 上传单个文件

3:upload() 上传多个文件

4:rootPath 上传文件保存目录

文件上传的前台html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<h1>商品图片</h1>
<div><input type="file" name="pic"/></div>
</body>
</html>

假设前面的表单提交到当前控制器的upload方法,upload方法的实现代码:

public function upload(){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Uploads/'; // 设置附件上传根目录
$upload->savePath = ''; // 设置附件上传(子)目录
// 上传文件
$info = $upload->upload();
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
$this->success('上传成功!');
}
}

 

有时我们只需要上传一个文件,就使用Upload类提供的uploadOne方法上传单个文件,例如:

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

//uploadOne()方法执行成功后会把附件(在服务器上)的名字和路径等相关信息返回
$file_info = $upload->uploadOne($_FILES['pic']); //把上传好的附件存到数据库 拼接路径

//$upload->rootPath通过父类upload.class.php中的__get()方法获取配置中的rootPath
$pic = $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(), // 上传驱动配置
);

以上就是本文PHP--ThinkPHP 3.2框架文件上传类的全部内容,欢迎大家的学习。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。