tengo la siguiente acción dentro de mi controladorASP.net MVC ActionResult corrompe el archivo de Excel, al regresar de MemoryStream
public ActionResult DownloadExcel()
{
//create and populate Excel file here
C1XLBook testBook = new C1XLBook();
//populate it here
MemoryStream ms = new MemoryStream();
testBook.Save(ms, FileFormat.Biff8);
return File(ms, "application/ms-excel", "test-file.xls");
}
Al abrir el archivo, me sale el mensaje de Excel indica que el archivo no coincide con el extensión y el archivo se abre dañado.
Si salvo el archivo en el disco duro y volverlo a partir de ahí, todo está bien:
return base.File(@"C:\LOGS\test-file.xls", "application/ms-excel", "test-excel.xls");
Al principio pensé que la función Save corrompe al guardarlo en el MemoryStream, así que salven y volvió a cargarlo y estaba bien, volviendo al usuario: cuando se guardó en el disco duro y volvió desde allí, en lugar de desde MemoryStream
¿Alguna idea? No me gusta guardar el archivo en el Disco Duro ... además, ¿podría guardarlo en el MemoryStream y devolverlo desde allí?
Una corazonada que tengo es que tal vez el MemoryStream no se debe usar para devolver archivos en MVC, ya que cada solicitud está aislada.
gracias! ¡eso fue todo! – sarsnake