gpt4 book ai didi

azure - IFormFileCollection : Cannot access a Disposed Object

转载 作者:行者123 更新时间:2023-12-03 05:20:39 26 4
gpt4 key购买 nike

我尝试将文档上传到 Azure Blob,但在读取文件流时抛出如下错误。

错误,

Cannot access a disposed object.
Object name: 'FileBufferingReadStream'.

调用代码 OpenReadStream() 时出现错误,

public async Task UploadAsync(IFormFileCollection files, string directoryName)
{
var blobContainer = await _azureBlobConnectionFactory.GetBlobContainer();
CloudBlobDirectory directory = blobContainer.GetDirectoryReference(directoryName);
for (int i = 0; i < files.Count; i++)
{
CloudBlockBlob blockblob = directory.GetBlockBlobReference(files[i].FileName);
using (var stream = files[i].OpenReadStream())
{
await blockblob.UploadFromStreamAsync(stream);

}
}
}

我从实际的服务类中调用 UploadAsync 方法,例如,

public async Task<bool> UploadToBlob(DocumentModel model,string directorypath)
{
try
{
//string directory = directorypath + model.EmailId + "/" + model.Files[0].FileName;
await _blobService.UploadAsync(model.Files, "Documents/dummy.pdf");


return true;
}
catch(Exception e)
{
throw e;
}
}

我哪里出错了?

最佳答案

  • Action 方法的返回方法可能是导致此问题的原因
  • 如果返回类型不是Task<T>,则会发生错误.
    您可以按如下方式修改操作方法:
[HttpPost]
public async Task<int> ActionMethod(IFormFile img)
{
// same

return resultValue;
}

引用文献:

  1. When trying to upload file, FileBufferingReadStream.ThrowIfDisposed() error occur
  2. Cannot access a disposed object. Object name: FileBufferingReadStream
  3. IFormFile copy to memorystream ObjectDisposedException

关于azure - IFormFileCollection : Cannot access a Disposed Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72605310/

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