1
我增加了一個上傳的方法(HTTPPOST)上傳一個簡單的文件。我不斷收到這個錯誤,不知道它來自哪裏。有人可以解釋嗎?ASP.NET的核心揚鞭UI IFormFile不行的
也許有別人誰可以回答這個問題爲好,這不是最重要的,但你可以通過文件擴展名過濾器,以這種操作過濾器?它只接受.csv例如?或者是我們後期應該在後端執行的操作,檢查它已經上傳時的擴展名?
錯誤:1
POST方法:
[HttpPost]
[Consumes("multipart/form-data")]
public void Post(IFormFile file)
{
}
OperationFilter:
public class FormFileOperation : IOperationFilter
{
private const string FormDataMimeType = "multipart/form-data";
private static readonly string[] FormFilePropertyNames = typeof(IFormFile).GetTypeInfo().DeclaredProperties.Select(x => x.Name).ToArray();
public void Apply(Operation operation, OperationFilterContext context)
{
if (context.ApiDescription.ParameterDescriptions.Any(x => x.ModelMetadata.ContainerType == typeof(IFormFile)))
{
var formFileParameters = operation
.Parameters
.OfType<NonBodyParameter>()
.Where(x => FormFilePropertyNames.Contains(x.Name))
.ToArray();
var index = operation.Parameters.IndexOf(formFileParameters.First());
foreach (var formFileParameter in formFileParameters)
{
operation.Parameters.Remove(formFileParameter);
}
var formFileParameterName = context
.ApiDescription
.ActionDescriptor
.Parameters
.Where(x => x.ParameterType == typeof(IFormFile))
.Select(x => x.Name)
.First();
var parameter = new NonBodyParameter()
{
Name = formFileParameterName,
In = "formData",
Description = "The file to upload.",
Required = true,
Type = "file"
};
operation.Parameters.Insert(index, parameter);
if (!operation.Consumes.Contains(FormDataMimeType))
{
operation.Consumes.Add(FormDataMimeType);
}
}
}
}
對於文件擴展名。這正是我想,我只是想知道。 對於IFormFile使用我沒有和這有助於... – Condra963