É possível usar um MemoryStream com FileStreamResult?
Estou usando o DotNetZip para criar um arquivo zip e passá-lo para um FileResult. Na depuração, posso verificar se o MemoryStream contém um arquivo, mas quando o executo através do FileStreamResult, ele retorna 0 bytes:
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;
}
Mais uma vez, posso verificar se o fluxo não está vazio, mas isso sempre retornará o arquivohey.zip
como 0 bytes. Eu devo estar usandoMemoryStream
errado aqui? OuFileStreamResult
faz algo que eu não estou esperando fazer? Eu useiFileStreamResult
antes, mas não comMemoryStream
.