ThinkPHP实现附件上传功能


Posted in PHP onApril 27, 2017

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
Apr 15 PHP
PHP通过串口实现发送短信
Jul 08 PHP
php生成高清缩略图实例详解
Dec 07 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
php DES加密算法实例分析
Sep 18 PHP
laravel 自定义常量的两种方案
Oct 14 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 #PHP
php实现头像上传预览功能
Apr 27 #PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 #PHP
phpMyAdmin无法登陆的解决方法
Apr 27 #PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 #PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 #PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 #PHP
You might like
晶体管单管来复再生式收音机
2021/03/02 无线电
用PHP读注册表
2006/10/09 PHP
php 生成随机验证码图片代码
2010/02/08 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP生成压缩文件实例
2015/02/07 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python模拟登陆实现代码
2017/06/14 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
python 瀑布线指标编写实例
2020/06/03 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫