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;
}
繰り返しますが、ストリームが空ではないことを確認できますが、これにより常にファイルhey.zipが0バイトとして返されます。私はMemoryStreamここで間違って使用しているに違いありませんか?それともFileStreamResult、私が期待していないことをしますか?以前に使用したことがありますが、では使用FileStreamResultしていませんMemoryStream。