【问题标题】:Error: Cannot convert from Microsoft.AspNetCore.Http.IFormFile to System.IO.Stream错误:无法从 Microsoft.AspNetCore.Http.IFormFile 转换为 System.IO.Stream
【发布时间】:2021-07-31 02:44:49
【问题描述】:

我正在尝试创建 Azure 函数,该函数从 html 表单 POST 请求中获取图像文件并将其保存到 Blob 存储中,以便进一步与另一个函数一起使用。这是我的代码:

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

            foreach (var file in req.Form.Files)
            {
                using (var ms = new MemoryStream())
                {
                    var file2 = req.Form.Files[0];
                    await file2.CopyToAsync(ms);
                    ms.Seek(0, SeekOrigin.Begin);
                    var connectionString = "DefaultEndpointsProtocol=https;" +
                "AccountName=mystorageaccount;" +
                "AccountKey=8Hk5k6j65j5j665j67k==;" +
                "EndpointSuffix=core.windows.net";

                    // intialize BobClient 
                    Azure.Storage.Blobs.BlobClient blobClient = new Azure.Storage.Blobs.BlobClient(
                        connectionString: connectionString,
                        blobContainerName: "image-storage",
                        blobName: "images");

                    // upload the file
                    blobClient.Upload(file2);
                }
            }

            return new OkResult("Image uploaded successfully");
        }
    }

但是这会引发异常:

错误 CS1503 参数 1:无法从 'Microsoft.AspNetCore.Http.IFormFile' 到 'System.IO.Stream'

非常感谢任何建议。

编辑:我之前使用 Azure 门户为我的存储帐户创建了 Blob 容器“图像存储”。

【问题讨论】:

  • 应该将您的MemoryStream ms 传递给bobClient.UploadbobClient.Upload(ms);
  • 要扩展@pfx 评论,基本上将这行代码blobClient.Upload(file2); 更改为blobClient.Upload(ms)

标签: c# asp.net azure file-upload azure-functions


【解决方案1】:

BlobCients Upload 方法需要 Stream 而不是 IFormFile

传递您在ms 变量中的MemoryStream 将解决问题。

blobClient.Upload(ms);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2021-11-03
    • 2017-08-17
    • 2019-07-05
    • 2019-05-15
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多