【问题标题】:Azure function POST request with attachments带有附件的 Azure 函数 POST 请求
【发布时间】:2020-08-10 10:29:03
【问题描述】:

我有一个包含多个字段和一些附件的表单。我需要使用 http 触发器(发布)将其提交给 Azure 函数。 任何指导或示例如何使用 C#/.NET 编写此 Azure 函数以接受字段数据和附件?

【问题讨论】:

  • 这里是something I've found
  • @aepot:这是关于从请求正文创建文件的。在我的情况下,它提交的表单包含多个字段(例如:姓名、电子邮件、电话)以及一些附加文件
  • 那么可能是this。要附加文件,您必须将其编码为 Base64 并作为文本添加到 params Dictionary。
  • @aepot 谢谢,但我正在寻找的是如何编写 azure 函数来“接受”字段和附件。不是如何“发送”请求

标签: c# azure-functions


【解决方案1】:

您可以参考下面的示例代码。我做了一些测试,它可以接收参数。

using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

namespace AcceptFormData
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            var formdata = await req.ReadFormAsync();
            string name = formdata["name"];
            string email = formdata["email"];
            string phone = formdata["phone"];
            var image = req.Form.Files["file"];
            
            log.LogInformation(name);
            log.LogInformation(email);
            log.LogInformation(phone);

            string responseMessage = string.IsNullOrEmpty(name)
                ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
                : $"Hello, {name}. This HTTP triggered function executed successfully.";

            return new OkObjectResult(responseMessage);
        }
    }
}

postman中的请求体是这样构造的:

我参考了这个blog。我认为这可以解决您的问题,如果没有,您可以告诉我。

【讨论】:

  • 工作正常。想知道是否有更好的方法将 formdata 集合直接解析为 viewmodel 对象,而不是一个一个地读取和分配属性
猜你喜欢
  • 1970-01-01
  • 2021-12-14
  • 2021-05-21
  • 2022-10-06
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多