【问题标题】:Uploading file IFormFile to Azure C# function将文件 IFormFile 上传到 Azure C# 函数
【发布时间】:2020-05-14 13:54:44
【问题描述】:

我有这个常规的 C# Azure 函数:

[FunctionName("Function1")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
    ILogger log) ...

我需要在这里上传文件,例如图片。我如何在此处添加IFormFile 或者有其他方法可以上传文件以发挥作用?

【问题讨论】:

    标签: c# .net-core azure-functions iformfile


    【解决方案1】:

    要将文件上传到 Azure 函数,请查看传入 HttpRequest 的表单。

    这对我有用:

    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "files")] HttpRequest req,
        ILogger log)
    {
        foreach(var file in req.Form.Files)
        {
            using (var ms = new MemoryStream())
            {
                var file = req.Form.Files[0];
                await file.CopyToAsync(ms);
                ms.Seek(0, SeekOrigin.Begin);
                // Do something with the file
            }
        }
    
        return new OkResult();
    }
    

    【讨论】:

    • 谢谢,但我还有其他问题。任何文件都会引发此异常:System.Private.CoreLib: Exception while executing function: Function1. Microsoft.AspNetCore.WebUtilities: Multipart body length limit 16384 exceeded.
    • 这是一个值得自己提问的新问题?。但是:[SO:40364226]
    • 谢谢,添加这个属性解决了[RequestFormLimits(ValueLengthLimit = int.MaxValue, MultipartBodyLengthLimit = int.MaxValue)]
    • 如果我的帖子回答了您的问题,请将其标记为答案,以帮助未来的用户遇到此问题。
    • 您能否推荐一下如何将表单文件和字符串参数添加到相同的 azure 函数方法中?
    猜你喜欢
    • 1970-01-01
    • 2018-05-26
    • 2019-03-27
    • 2020-09-04
    • 1970-01-01
    • 2022-11-12
    • 2017-07-23
    • 2019-03-04
    • 2021-05-14
    相关资源
    最近更新 更多