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 正确解码javascript中通过escape编码后的字符
Jan 28 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
测试php函数的方法
Nov 13 PHP
2014过年倒计时示例
Jan 31 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
PHP扩展安装方法步骤解析
Nov 24 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
1 Tube Radio
2021/03/02 无线电
php面象对象数据库操作类实例
2014/12/02 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
python实现的简单猜数字游戏
2015/04/04 Python
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
基于python3实现倒叙字符串
2020/02/18 Python
执行Python程序时模块报错问题
2020/03/26 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
安全生产年活动总结
2014/08/29 职场文书
事业单位聘任报告
2015/03/02 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Python如何加载模型并查看网络
2022/07/15 Python
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers