因此,我尝试使用 file.CopyToAsync 将一个流复制到另一个流中,但目标流 fs 在保存到磁盘后返回长度为 0。
FileUploads fup = new FileUploads();
Stream file = e.File.OpenReadStream(10240000);
var path = @"C:\BlazorUploads\" + e.File.Name;
FileStream fs = File.Create(path);
file.CopyToAsync(fs);
fup.FileStream = fs;
fup.FileName = e.File.Name;
fup.ContentType = e.File.ContentType;
fups.Add(fup);
我尝试了多种方法,无论有没有等待,但都没有运气。
using FileStream fs = File.Create(path); // add the 'using'
file.CopyToAsync(fs);
fup.FileStream = fs; // don't do this
不要存储流对象,它应该是短暂的。
您的
fup
拥有按需重新打开文件的一切。