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
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
php正则表达式(regar expression)
Sep 10 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
怎样搭建PHP开发环境
Jul 28 PHP
PHP递归创建多级目录
Nov 05 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 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
德生1994机评
2021/03/02 无线电
php 什么是PEAR?
2009/03/19 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
js活用事件触发对象动作
2008/08/10 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python3.3实现乘法表示例
2014/02/07 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
使用python实现学生信息管理系统
2021/02/25 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
一道SQL面试题
2012/12/31 面试题
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
介绍长城的导游词
2015/01/30 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
初中数学教学反思范文
2016/02/17 职场文书
Python requests用法和django后台处理详解
2022/03/19 Python