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个人网站架设连环讲(三)
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
php 定界符格式引起的错误
May 24 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
php格式化日期实例分析
Nov 12 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP中返回引用类型的方法
Apr 03 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
php实现微信扫码支付
Mar 26 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 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实现的功能是显示8条基色色带
2006/10/09 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
js实现聊天对话框
2020/02/08 Javascript
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
python读写ini文件示例(python读写文件)
2014/03/25 Python
linux下python抓屏实现方法
2015/05/22 Python
python实现实时视频流播放代码实例
2020/01/11 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
运动会跳远加油稿
2014/02/20 职场文书
《木笛》教学反思
2014/03/01 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
空气的环保标语
2014/06/12 职场文书
公司委托书格式范本
2014/09/16 职场文书
西安兵马俑导游词
2015/02/02 职场文书
生活委员竞选稿
2015/11/21 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL