ThinkPHP6 API 单文件+多文件上传代码实现方式

开发中经常要用到接口上传 单文件或多文件,做个备忘录,有需要的同学直接copy。

提交方式:form-data , 参数名 file[]

ThinkPHP6接收方式:

$files = request()->file('file');$res = [];// 存储上传失败的信息
$res['success'] = [];
$res['error'] = [];
foreach($files as $file){$ext = $file->getOriginalExtension();//不同文件,储存不同的文件夹$folder = config('filesystem.disks.folder') . '/api/' . $ext; //以文件后缀名作为存文件的存放目录if(!file_exists($folder))mkdir($folder, 0700,TRUE);//如果文件夹不存在,则创建//如果不需要验证文件,那么将try( validate )catch {} 去掉就可以了try {validate(['image'=>'fileSize:10240|fileExt:jpg|image:200,200,jpg'])->check($file);//====================如果不需要验证,那么就保留这一段  开始====================$savename = Filesystem::disk('public')->putFile($folder,$file);//上传文件,等到上传之后的文件名称if (!$savename) {$res['error'][] =  $file->getOriginalName();}else{$savename = '/' . str_replace("\\","/",$savename);$uploadRes = (new ApiUploadFiles())->create(['uid'=>$uid,'file_name'=>$file->getOriginalName(),'file_size'=>$file->getSize(),'extension'=>$ext,'url'=>$savename,]);if($uploadRes){$res['success'][] = ['id'=>$uploadRes->id,'name'=>$file->getOriginalName(),'path'=>Request::domain().'/'.$savename,//因为要返回给前端网址,这里要加上域名 Request::domain()];}else{$res['error'][] =  ['name'=>$file->getOriginalName()];}}//====================如果不需要验证,那么就保留这一段  结束====================} catch (\think\exception\ValidateException $e) {$error[] =  $file->getOriginalName().$e->getMessage();}}return show($res,200);

如果觉得对你有帮助,请点个关注,谢谢~

ThinkPHP6 API 单文件+多文件上传代码实现方式相关推荐

  1. php文件 用户头像上传代码,网页web上传用户头像代码实现(美图秀秀开放)

    网页web上传用户头像代码实现(美图秀秀开放) 在制作论坛或者一些门户社交网站的时候,经常要获取用户的头像.之前我们一般都是自己制作flash插件头像上传.或者用js来自己开发一个头像上传功能.比如有 ...

  2. github上传文件 linux,第一次上传代码到github (Linux)

    1    初始化 执行git init 2   克隆 找到仓库地址,在github的具体项目上有 执行 git clone 并且把需要上传的文件拷贝过去 3  添加提交文件 git add *   即 ...

  3. 仿抖音短视频h5单页版htnl上传即可使用源码文件

    仿抖音短视频的模板 项目是前后端分离,前端采用uniapp开发,后端目前是用frphp临时搭建的接口,后续为了方便管理内容,会移植到极致cms上.现在也可丢到网站里当一个单页使用,无聊时可以刷一刷短视 ...

  4. vue+element-ui大文件的分片上传和断点续传js-spark-md5和browser-md5-file

    注意:以下共两份代码片段,第一份为原博主链接代码,第二份自己写的整体代码(比较乱) 1.参考 https://www.cnblogs.com/kelelipeng/p/10158599.html (j ...

  5. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    说明:Plupload支持多种浏览器,多种上传方式! 一般的WEB方式文件上传只能使用FileUpload控件进行一个文件一个文件的进行上传,就算是批量上传,也要把文件一个一个的添加到页面,无法如 w ...

  6. vue+elementui 同时有上传文件和批量上传文件功能,上传文件或批量上传文件后必须刷新才能再次上传文件

    报错描述: 使用element-ui的上传文件组件写一个批量上传和上传文件,但是发现每次上传文件后或者批量上传文件后,不能再次上传文件或者批量上传文件.只有进入页面第一次点击上传文件或者批量上传文件才 ...

  7. Dropzone.js实现文件拖拽上传

    dropzone.js是一个开源的JavaScript库,提供 AJAX 异步文件上传功能,支持拖拽文件.支持最大文件大小.支持设置文件类型.支持预览上传结果,不依赖jQuery库. 使用Dropzo ...

  8. form表单刷新_《大胖 ? 小课》- 不用 js 实现文件无刷新上传

    这是<大胖小课>栏目的专题一<说说文件上传那些事儿>的第3节-<不用 js 实现文件无刷新上传> 专题已经更新章节: <大胖 • 小课>- 我是这样理解 ...

  9. formdata上传文件_大文件分片断点上传实现思路以及方案

    作者:yeyan1996| 来源:掘金https://juejin.im/post/5dff8a26e51d4558105420ed 前言 我在面试的时候确实被问到了这个问题,而且是一道在线 codi ...

最新文章

  1. 简单分解帮助看清复杂问题
  2. 数据库系统实现 第六章 查询执行
  3. Linux笔记-设置SSH公钥免密码登录
  4. 09-OSPF故障排查总结
  5. [转]Ionic系列——CodePen上的优秀Ionic_Demo
  6. Redis面试题汇总(附答案),面试突击专用
  7. wo 27s虚拟服务器,联通光猫wo-27s设置上网
  8. web大作业介绍自己的家乡_中国10大乡村名鸭!快来看看自己家乡的鸭子是否上榜...
  9. 谁不想拥有自己的代码仓库?
  10. asyncio+aiohttp异步免费代理池(已失效)
  11. 用Python写了一个图像文字识别OCR工具
  12. 倍福---原点断电保持的方法
  13. 京东首页html+css1.0
  14. 显示器支架什么品牌好?
  15. 微信小程序与内嵌网页交互实现支付功能
  16. 【算法千题案例】每日LeetCode打卡——92.最短补全词
  17. FlexNetLicensing简介(由FlexNetPublisher和FlexNetEmbedded构成)
  18. 无人机机载LiDAR电力线路巡检案例分享
  19. 护士站之log4net
  20. 有赞接口开发说名文档

热门文章

  1. 游戏环境检测_报告显示:风险环境和外挂类型关系密切 加速器外挂在模拟器环境里最多...
  2. 工业RFID在自动化控制中的解决方案
  3. 农行etc综合评分不足
  4. 群晖搭建基于Plex的自动追剧媒体中心
  5. 商家开发微商城做会员制商城有哪些好处?
  6. json_encode详解,转义
  7. 爱奇艺黄金会员年卡106元截止27号,购买抓紧哦!
  8. [转]from wiki.ubuntu.org.cn
  9. 如何查看bilibili分集合集视频总时长
  10. 上一条 下一条 新闻