使用 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;
}
较旧的 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;
}