swagger和openAPI: 上传文件 - Break易站
[
]
上传文件
在OpenAPI 3.0中,您可以描述直接使用请求内容上传的文件和使用multipart
请求上传的文件。
使用requestBody
关键字来描述包含文件的请求负载。在下content
,指定请求媒体类型(如image/png
或application/octet-stream
)。文件使用or 的type: string
模式,具体取决于文件内容的编码方式。format: binary
format: base64
例如:
requestBody:
content:
image/png:
schema:
type: string
format: binary
该定义对应于如下所示的HTTP请求:
POST /upload
Host: example.com
Content-Length: 808
Content-Type: image/png
[file content goes there]
通过多部分请求上传
要描述与其他数据一起发送的文件,请使用multipart
媒体类型。例如:
requestBody:
content:
multipart/form-data:
schema:
properties:
orderId:
type: integer
userId:
type: integer
fileName:
type: string
format: binary
相应的HTTP请求有效载荷将包含多个部分:
POST /upload
Host: example.com
Content-Length: 2740
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWfPNVh4wuWBlyEyQ
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="orderId"
1195
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="userId"
545
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="fileName"; filename="attachment.txt"
Content-Type: text/plain
[file content goes there]
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
多文件上传
使用multipart
媒体类型定义上传任意数量的文件(一组文件):
requestBody:
content:
multipart/form-data:
schema:
properties:
filename:
type: array
items:
type: string
format: binary
相应的HTTP请求如下所示:
POST /upload
Host: example.com
Content-Length: 2740
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWfPNVh4wuWBlyEyQ
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="fileName"; filename="file1.txt"
Content-Type: text/plain
[file content goes there]
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="fileName"; filename="file2.png"
Content-Type: image/png
[file content goes there]
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
Content-Disposition: form-data; name="fileName"; filename="file3.jpg"
Content-Type: image/jpeg
[file content goes there]
------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架