Creare un file txt tramite pagina aspx

venerdì 28 settembre 2012 - 12.19
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows Server 2008 R2  |  Visual Studio 2010

trinity Profilo | Guru

salve ragazzi buongiorno,

non l'ho mai fatto prima ma me lo hanno richiesto in pratica devo creare attraverso una pagina aspx un file txt sul server web che poi l'utente se lo scarica in download questo file txt deve contenere dei dati presi da un db. Ovviamente la sua creazione non c'è problema ma come faccio a crearlo sul server web?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

algraps Profilo | Junior Member

Ciao,
ti allego il codice per creare e scaricare un file txt:

string sFileName = System.IO.Path.GetRandomFileName(); string sGenName = "Friendly.txt"; //YOu could omit these lines here as you may //not want to save the textfile to the server //I have just left them here to demonstrate that you could create the text file using (System.IO.StreamWriter SW = new System.IO.StreamWriter( Server.MapPath("TextFiles/" + sFileName + ".txt"))) { SW.WriteLine(txtText.Text); SW.Close(); } System.IO.FileStream fs = null; fs = System.IO.File.Open(Server.MapPath("TextFiles/" + sFileName + ".txt"), System.IO.FileMode.Open); byte[] btFile = new byte[fs.Length]; fs.Read(btFile, 0, Convert.ToInt32(fs.Length)); fs.Close(); Response.AddHeader("Content-disposition", "attachment; filename=" + sGenName); Response.ContentType = "application/octet-stream"; Response.BinaryWrite(btFile); Response.End();

ti rimando a questo link per una spiegazione piu' dettagliata:
http://www.codeproject.com/Articles/15649/Create-and-download-text-file-from-a-web-page

Ciao
A.G.

Gluck74 Profilo | Guru

be in teoria non avresti nemmeno l'obbligo di salvare il file sul server (a meno che non debbano rimanere salvati tutti).

//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(); }
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5