Я использую 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
как 0bytes. Я должен использовать MemoryStream
здесь неправильно? Или FileStreamResult
делает то, чего я не ожидаю от этого? Я использовал FileStreamResult
раньше, но не с MemoryStream
.