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 相关文章推荐
解决GD中文乱码问题
Feb 14 PHP
常用的php对象类型判断
Aug 27 PHP
php 禁止页面缓存输出
Jan 07 PHP
php 正则匹配函数体
Aug 25 PHP
php 获取远程网页内容的函数
Sep 08 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 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
Terran兵种对照表
2020/03/14 星际争霸
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
PHP获取url的函数代码
2011/08/02 PHP
js 上传图片预览问题
2010/12/06 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
python实现文件路径和url相互转换的方法
2015/07/06 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
捐书倡议书
2014/08/29 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
2016年会开场白台词
2015/06/01 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
详解Laravel服务容器的优势
2021/05/29 PHP