我正在尝试上传文件并保存到Azure Blob存储中。
该文件将作为FormFile注入。
问题是,将FormFile转换为内存流时出现错误。然后,流将上传到Azure,但不包含任何数据。

 public async Task<IActionResult> Create([Bind("EndorsementId,FileName,ProviderId,Title")] Endorsement endorsement, IFormFile formFile)
    {
        if (ModelState.IsValid)
        {
            ...
            var data = new MemoryStream();

            formFile.CopyTo(data);
            var buf = new byte[data.Length];
            data.Read(buf, 0, buf.Length);

            UploadToAzure(data);

            ...


错误是在内存流的ReadTimeOut和WriteTimeOut属性上。他们说“ data.ReadTimeout”分别引发了“ System.InvalidOperationException”类型的异常和“ data.WriteTimeout”引发了“ System.InvalidOperationException”类型的异常。

这是我注入FormFile的方法。关于这方面的信息似乎很少。
http://www.mikesdotnetting.com/article/288/uploading-files-with-asp-net-core-1-0-mvc

提前致谢。

最佳答案

IFormFile为此具有CopyToAsync方法。您可以执行以下操作:

using (var outputStream = await blobReference.OpenWriteAsync())
{
    await formFile.CopyToAsync(outputStream, cancellationToken);
}

关于c# - 将表单文件转换为内存流时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38318005/

10-08 20:47