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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
常用PHP框架功能对照表
Oct 23 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 PHP
php png失真的原因及解决办法
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初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
基于php split()函数的用法详解
2013/06/05 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
php中__toString()方法用法示例
2016/12/07 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python实现基本线性数据结构
2016/08/22 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
个人优缺点自我评价
2014/01/27 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL