使用 Azure Function .NET5 和 HttpRequestData,如何处理文件上传(表单数据)?

Using Azure Function .NET5 and HttpRequestData, how to handle file upload (form data)?

较旧的 Azure Functions 提供对 HttpRequest 的访问权限,这使我们可以通过 req.Form.Files 等访问上传的文件

独立的 .NET5 Azure 函数使用 HttpRequestData,它不提供对 Form 的访问权限。如何提取发布到函数的上传文件?

您可以在 .csproj 文件中添加 <PackageReference Include="HttpMultipartParser" Version="5.0.0" />。然后使用var parsedFormBody = MultipartFormDataParser.ParseAsync(req.Body);,你会得到你的文件。

在邮递员中。

调试时

下面是我的测试代码。

[Function("test")]
public static HttpResponseData Run1([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req,
        FunctionContext executionContext
        )
    {
        // get query params
        var testvalue=executionContext.BindingContext.BindingData["testparams"];
        // get form-body        
        var parsedFormBody =  MultipartFormDataParser.ParseAsync(req.Body);
        var file=parsedFormBody.Result.Files[0];

        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");

        response.WriteString("Welcome to Azure Functions!");

        return response;
    }