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基础知识:控制结构
Dec 13 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
php强制运行广告的方法
Dec 01 PHP
php树型类实例
Dec 05 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
解决Laravel blade模板转义html标签的问题
Sep 03 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
汽车工程专业应届生求职信
2013/10/19 职场文书
应届生新闻编辑求职信
2013/11/19 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
食品安全工作方案
2014/05/07 职场文书
企业文化宣传标语
2014/06/09 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
人民币符号
2022/02/17 杂记
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers