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 相关文章推荐
php下通过POST还是GET来传值
Jun 05 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
php 类自动载入的方法
Jun 03 PHP
如何使用php实现评委评分器
Jul 31 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 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来处理多个提交任务
2006/10/09 PHP
随机头像PHP版
2006/10/09 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
JS 判断代码全收集
2009/04/28 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
Python求解平方根的方法
2015/03/11 Python
Python安装第三方库的3种方法
2015/06/21 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
检查接待方案
2014/02/27 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
明星邀请函
2015/02/02 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
开学典礼校长致辞
2015/07/29 职场文书
初中政治教学工作总结
2015/08/13 职场文书