ThinkPHP实现附件上传功能

发布时间 - 2026-01-11 00:52:38    点击率:

刚学的使用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(), // 上传驱动配置
 );

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# thinkphp附件上传  # thinkphp文件上传  # thinkphp图片上传  # thinkphp视频上传  # ThinkPHP使用心得分享-上传类UploadFile的使用  # ThinkPHP文件上传实例教程  # 使用ThinkPHP+Uploadify实现图片上传功能  # ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法  # Thinkphp多文件上传实现方法  # thinkphp表单上传文件并将文件路径保存到数据库中  # 封装ThinkPHP的一个文件上传方法实例  # thinkPHP3.2简单实现文件上传的方法  # thinkphp实现图片上传功能  # thinkphp jquery实现图片上传和预览效果  # 上传  # 多个  # 重写  # 上传文件  # 几个  # 只需  # 相关信息  # 不做  # 在上面  # 会把  # 错误信息  # 回调  # 大家多多  # 是否存在  # 文件上传  # 判断是否  # 器上  # 保存文件  # 可根据  # 文档 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel集合Collection怎么用_Laravel集合常用函数详解  如何在自有机房高效搭建专业网站?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  独立制作一个网站多少钱,建立网站需要花多少钱?  如何在IIS7上新建站点并设置安全权限?  如何在IIS中新建站点并配置端口与IP地址?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  如何在建站之星绑定自定义域名?  百度浏览器如何管理插件 百度浏览器插件管理方法  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  *服务器网站为何频现安全漏洞?  网站建设整体流程解析,建站其实很容易!  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何快速查询网址的建站时间与历史轨迹?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  微信小程序 HTTPS报错整理常见问题及解决方案  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何快速启动建站代理加盟业务?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Windows Hello人脸识别突然无法使用  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  高防服务器租用指南:配置选择与快速部署攻略  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  javascript基于原型链的继承及call和apply函数用法分析  Firefox Developer Edition开发者版本入口  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  高端网站建设与定制开发一站式解决方案 中企动力  Java类加载基本过程详细介绍  PHP 500报错的快速解决方法  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  如何在阿里云香港服务器快速搭建网站?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  javascript中对象的定义、使用以及对象和原型链操作小结  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局