Salve,
io devo leggere dei dati da un db e creare successivamente un file txt con questi dati e far si che l'utente possa scaricare questo file sul proprio computer.
Tempo fa feci già in questo forum una domanda del genere ed un utente mi diede questo esempio nel caso in cui io non volessi mantenere sul server i file txt che creo.
Ecco il codice che mi fornì:
//creo uno stream in memoria, e relativo writer
using(MemoryStream stream = new MemoryStream())
using (StreamWriter sw = new StreamWriter(stream))
{
//la procedura qui legge i dati dalla sorgente,
//e scrive tutto come stringhe nello stream
sw.WriteLine("Test");
sw.WriteLine("Test Again");
sw.Flush();
sw.Close();
//ora lo stream è pieno, con i dati letti dal DB
//trasformo tutto in byte[]
byte[] byteArray = stream.ToArray();
stream.Flush();
stream.Close();
//mando tutto al browser
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=test.txt");
Response.AddHeader("Content-Length", byteArray.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(byteArray);
Response.Close();
}
solo che non funziona ripete il ciclo 3 volte e non so il perchè e poi re-indirizza ad un errore di pagina del browser...come mai?
Cirillo Fabio
www.trycontact.com
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com