bbinckes
6 years agoOccasional Visitor
Swagger UI failing to execute multiple file upload (open api 3.01)
I have a .aspnet core 3.1 project that implements swagger UI (5.00). One of the API methods posts multiple images,
[HttpPost("images", Name = "PostImages")]
public async Task<IActionResult> Images([FromForm] IEnumerable<IFormFile> files)
{I am implementing an IOperationFilter to rebake the schema.
if (operation.OperationId != "PostImages")
{
return;
}
var properties = new Dictionary<string, OpenApiSchema>();
var openApiSchema = new OpenApiSchema
{
Type = "array",
Items = new OpenApiSchema
{
Type = "string",
Format = "binary",
Description = "Multiple File Upload"
}
};
properties.Add("files", openApiSchema);
operation.RequestBody.Content["multipart/form-data"].Schema.Properties = properties;
Where the json looks like this,
"/api/Upload/images": {
"post": {
"tags": [
"Upload"
],
"operationId": "PostImages",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"description": "Multiple File Upload",
"format": "binary"
}
}
}
},
"encoding": {
"files": {
"contentType": "image/png",
"style": "form"
}
}
}
}
},
Seems like all of this is correct but when breaking in the method I get no files. My dev tools show the request body as,
files: [object File],[object File]
Throw me a bone someone. This is driving me crazy.
Thank you