1
単純なファイルをアップロードするアップロードメソッド(HTTPPOST)を追加しました。私はこのエラーを受け取り続け、どこから来たのか分からない。誰かがそれを説明できますか?ASP .Net Core Swagger UI IFormFileが動作しない
また、この質問にも答えることができる人がいますが、これは最も重要な問題ではありませんが、この操作フィルタにファイル拡張フィルタを渡すことはできますか?たとえば、.csvだけを受け入れることはできますか?それとも、バックエンドのようにフロントエンドで後で行うべきことは、すでにアップロードしているときにどの拡張機能があるかを確認することですか?
ERROR:1
ポスト方法:
[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