我正在使用 DotNetZip 创建一个 zip 文件并将其传递给 FileResult。在调试时,我可以验证 MemoryStream 是否包含一个文件,但是当我通过 FileStreamResult 运行它时,它返回 0bytes:
public FileResult GetZipFiles(int documentId) {
var file = fileRepository.Get(documentId);
var zip = new ZipFile();
var stream = new MemoryStream();
var filePath = Path.Combine(UploadsFolder, Path.GetFileName(file.Id));
zip.AddFile(filePath);
zip.Save(stream);
var result = new FileStreamResult(stream, "application/zip")
{ FileDownloadName = "hey.zip" };
return result;
}
同样,我可以验证流不为空,但这将始终将文件返回hey.zip
为 0 字节。我一定是在这里用MemoryStream
错了?或者FileStreamResult
做一些我不希望它做的事情?我以前用过FileStreamResult
,但没有MemoryStream
。