当前位置: 首页 > news >正文

tsoa 上传文件

前言

使用了 tsoa 之后,路由参数交互就不再使用 koaBody,那 koaBody 接收文件上传的那一套自然也不会再可行了。

安装multer

tsoa 上传文件底层用的是 multer, 这里参考官方教程.

npm install @koa/multer multer 

这样你就可以直接在项目中使用了(需要注意的是 如果还有其他字段 请以表单方式接受)

import { Post, Route, FormField, UploadedFile } from "tsoa";@Route("some")
export class SomeController {@Post("uploadFile")public async uploadFile(@FormField() title: string, @UploadedFile() file: File): Promise<void> {console.log(files);}
}

默认情况下,文件存储在操作系统的临时文件夹内!

自定义上传路径

其实这个简单,在很在之前就有人提过这个问题 issue,可以直接在 tsoa.json 中定义 multer配置项目

{"multerOpts": {"dest": "./uploads",}
}

这样文件就会传递到你指定的目录了。

修改文件属性

比如修改上传的文件名等等,按理说 tsoa.json>multerOpts 是可以直接 storage字段的。通过此字段可以操作 file 任何属性。
可惜受限于配置文件只能是 json,所以storage字段的可配置性基本作废。

捣鼓了半天后,也没解决! 最后通过不断的搜索、死磕,最终找到一个 issue 说 其实官方支持另一种方式来定义multerOpts,但是官方文档却没有提及!
气的我在后边回复 issue 大骂了一句 fc!

// app.ts
import multer from '@koa/multer';
import { RegisterRoutes } from '@/routers/routes';RegisterRoutes(router, {multer: multer({// limits: {//   fieldNameSize: 120,// },storage: multer.diskStorage({destination: function (req, file, cb) {cb(null, path.join(__dirname,'uploads'));},filename: function (req, file, cb) {cb(null, file.fieldname + '-' + Date.now());}})}),
});
http://www.sczhlp.com/news/21833/

相关文章:

  • THUSC 2024 游记
  • 给彩票网站做代理违法吗自建站模板
  • 网站搭建 商城 seo重庆seowhy整站优化
  • 关键词优化难度查询郑州网站运营专业乐云seo
  • 宁波优化网站哪家好全国疫情排名一览表
  • 无锡网站建设价格网络运营推广具体做什么工作
  • 好用的做图网站有哪些品牌推广平台
  • 找广告商的平台seo培训机构
  • 八年级信息技术网站建立怎么做google官网注册账号入口
  • 网站 系统 的开发技术交换友情链接的目的
  • 网站设计就业方向视频seo优化教程
  • ps做网站分辨率自适应网页设计可以自学吗
  • b站视频推广的方法有哪些网页代码模板
  • 8.20
  • 做外汇那个网站好媒体代发布
  • php 上传到网站竞价服务托管价格
  • 网站漂浮怎么做南京网站seo
  • 改善网站的建设公司软文
  • 在linux系统上用什么做网站上海培训机构有哪些
  • 怎么给自己网站做推广做网站哪个平台好
  • 梅州网站建设baidu楚雄seo
  • 免费绑定域名的建站2021年网络营销案例
  • 网站设计有什么前景福州网站seo
  • 特种设备作业人员证查询seo营销推广服务公司
  • 集宁做网站青岛神马排名优化
  • python+requests接口自动化框架的实现
  • WPF DataGrid 根据垂直滚动条的显示隐藏控制某列的列宽
  • 超详细WIN和MAC系统Axure9下载、安装、中文字体、授权(超详细保姆级小白教程)
  • jinja2语法
  • 【触想智能】工业触摸一体机在军工领域应用的意义和主要特点