ho la seguente azione dentro il mio controllerASP.net MVC ActionResult danneggia il file Excel quando di ritorno da 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");
}
Quando si apre il file, viene visualizzato il messaggio di Excel dice che il file non corrisponde alla estensione e il file si apre danneggiato.
Se risparmio il file sul disco rigido e ritorno da lì, tutto va bene:
return base.File(@"C:\LOGS\test-file.xls", "application/ms-excel", "test-excel.xls");
ho inizialmente pensato che la funzione Salva corrompe quando salvandolo nella MemoryStream, quindi ho salvato e ricaricato di nuovo ed è stato bene tornare all'utente - quando salvato sul disco rigido e restituito da lì, piuttosto che dal MemoryStream
Qualche idea? Non mi piace molto salvare il file sul disco rigido .... inoltre dovrei essere in grado di salvarlo nel MemoryStream e restituirlo da lì?
Un sospetto è che forse MemoryStream non deve essere utilizzato per restituire file in MVC, poiché ogni richiesta è isolata?
grazie! era così! – sarsnake