C# 无法访问已释放的对象。对象名称:FileBufferingReadStream
我正在尝试在azure中上载文件 所以基本上,我正在尝试将文件转换为流,以便在服务器上创建一个文件并写入其数据C# 无法访问已释放的对象。对象名称:FileBufferingReadStream,c#,.net,asp.net-mvc,file-upload,stream,C#,.net,Asp.net Mvc,File Upload,Stream,我正在尝试在azure中上载文件 所以基本上,我正在尝试将文件转换为流,以便在服务器上创建一个文件并写入其数据 public async Task UploadFileOnAzure( string path, string name, IFormFile file) { //create directory await _dlsService.CreateDir(path, name); //create file
public async Task UploadFileOnAzure( string path, string name, IFormFile file)
{
//create directory
await _dlsService.CreateDir(path, name);
//create file
var f = file.FileName;
var ext = Path.GetExtension(f);
string filepath = $"{path}/{name.ToString()}/{f}";
try
{
using (var ms = new MemoryStream())
{
using (var fileStram = file.OpenReadStream())
{//sometimes it breakes right before this line, other times it doesn't write the file(excel)
fileStram.CopyTo(ms);
using (Stream str = await _dlsService.CreateFile(filepath)) //file is created as empty ofcourse
{
ms.CopyTo(str);
str.Close();
//this doesnt write on the file
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
无法访问已处置的对象。对象名称:FileBufferingReadStream。我经常遇到这个错误。我似乎不明白为什么。
我想只写在创建的文件上。请帮助:)使用语句将在条款外处理和反对(刷新、关闭)。如果您尝试执行关闭代码,您将得到一个错误。您到底在哪里接收到该错误?@đěxěŕ有时我在这一行上得到错误
var fileStram=file.OpenReadStream()
。其他时候,我没有收到错误,但没有写入文件。这是上传文件的正确方式吗?还是编写一个?请删除using语句并重试。我们可以从这里开始。在复制文件数据时寻找一个类似的问题。using语句将在子句之外处理和对象(flush,close)。如果您尝试执行关闭代码,您将得到一个错误。您到底在哪里接收到该错误?@đěxěŕ有时我在这一行上得到错误var fileStram=file.OpenReadStream()
。其他时候,我没有收到错误,但没有写入文件。这是上传文件的正确方式吗?还是编写一个?请删除using语句并重试。我们可以从那里开始。寻找一个关于复制文件数据的类似问题。