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 相关文章推荐
Zend Guard一些常见问题解答
Sep 11 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
深入PHP FTP类的详解
Jun 13 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
php实现singleton()单例模式实例
Nov 06 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
PHP模版引擎原理、定义与用法实例
Mar 29 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
PHP代码加密的方法总结
Mar 13 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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
小谈php正则提取图片地址
2014/03/27 PHP
destoon各类调用汇总
2014/06/20 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
node.js中watch机制详解
2014/11/17 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python实现全排列的打印
2018/08/18 Python
Python实现DDos攻击实例详解
2019/02/02 Python
简单了解python元组tuple相关原理
2019/12/02 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
网络安全方面的面试题
2016/01/07 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
大学校庆策划书
2014/01/31 职场文书
入党申请自荐书范文
2014/02/11 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
2015年个人招商工作总结
2015/04/25 职场文书