Uso DotNetZip per creare un file zip e passarlo a FileResult. Su di debug, posso verificare che il MemoryStream contiene un file, ma quando l'eseguo attraverso FileStreamResult, restituisce 0bytes:È possibile utilizzare un MemoryStream con FileStreamResult?
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;
}
Anche in questo caso, è possibile verificare se Stream non è vuota, ma questo sarà sempre restituire il file hey.zip
come 0 byte. Devo usare MemoryStream
sbagliato qui? O FileStreamResult
fa qualcosa che non mi aspetto che faccia? Ho usato FileStreamResult
prima, ma non con MemoryStream
.
+1 per la prima frase, -1 per il secondo perché ha già visto che non è vuoto nel debugger. –
@Joel: Suppongo di averne perso uno. –
no biggie, comunque ti ho dato il voto più –