gpt4 book ai didi

c# - 将表单文件转换为内存流时出错

转载 作者:行者123 更新时间:2023-12-03 22:22:02 27 4
gpt4 key购买 nike

我正在尝试上传文件并保存到 Azure Blob 存储中。该文件作为 FormFile 注入(inject)。问题是,当我将 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”类型的异常。

这是我注入(inject) 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com