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 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
解析CodeIgniter自定义配置文件
Jun 18 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
PHP实现过滤各种HTML标签
May 17 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 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/11/29 PHP
php简单统计在线人数的方法
2016/05/10 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
python生成随机mac地址的方法
2015/03/16 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python编写实现抽奖器
2020/09/10 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
生产班组长岗位职责
2014/01/05 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
2014年就业工作总结
2014/11/26 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
2015年女职工工作总结
2015/05/15 职场文书
男人帮观后感
2015/06/18 职场文书
退休教师追悼词
2015/06/23 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android