我正在使用DotNetZip创建一个zip文件并将其传递给FileResult。在调试时,我可以验证MemoryStream中包含一个文件,但是当我通过FileStreamResult运行它时,它返回0字节:
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;
}
我可以确认流不为空,但这将始终以 0 字节返回文件 hey.zip
。 我在这里使用 MemoryStream
错误了吗? 或者 FileStreamResult
做了我没有预期的事情? 我以前使用过 FileStreamResult
,但没有使用 MemoryStream
。