2010-07-12 2 views
5

Attualmente sto cercando di scrivere dati (computer client) in un file xml in cui l'utente può salvare. Tuttavia, voglio che gli utenti siano in grado di decidere dove vogliono salvare questo file xml scritto. C'è qualche controllo o codice che posso usare per consentire agli utenti di salvare il file ?.Come posso creare un file XML con ASP.NET e chiedergli di scaricare?

Aggiornamento:

è che strada giusta da fare?

**HttpContext.Current.Response.Write(xw.ToStroing()); <<< ??????** 
HttpContext.Current.Response.End(); 

aggiornamento:

XmlWriterSettings settings = new XmlWriterSettings(); 
      settings.Indent = true; 
      MemoryStream ms = new MemoryStream(); 

HttpContext.Current.Response.Clear(); 
      HttpContext.Current.Response.ContentType = "text/xml"; 
      HttpContext.Current.Response.AddHeader("Content-Disposition:", "attachment;filename=" + HttpUtility.UrlEncode(fileName));   

      using (StringWriter sw = new StringWriter()) 
      { 
       using (XmlWriter xw = XmlWriter.Create(ms, settings)) 

       { 
        xw.WriteStartDocument(); 

        xw.WriteStartElement("Name"); 
        xw.WriteStartElement("Application"); 
        ................ 
        ...................... 
        HttpContext.Current.Response.Write(xw.ToStroing()); 
         HttpContext.Current.Response.End(); 

risposta

1

Ecco l'link me :) aiuta

1

Quando si inizia un download di file, il browser del client gestirà il salvataggio del file posizione.

Se si vuole forzare il file da scaricare anziché aperto, aggiungere questa intestazione HTTP per la vostra risposta:

Content-Disposition: attachment; filename="myFile.xml" 
+0

sto usando e devo aggiornare la mia domanda, si prega di vedere e ancora non funzionano –

+1

provare questo invece: 'usando (XmlWriter xw = XmlWriter.Create (Response.OutputStream))' e poi non fare il ' HttpContext.Current.Response.Write() ' –

+0

inoltre, non sono sicuro che tu abbia notato che' xw.ToStroing() 'è scritto in modo errato –

0

Dove è il MemoryStream in uso ? Si dovrebbe passare il StringWriter al costruttore XmlTextWriter poi Response.Write() il contenuto del StringWriter

0

Aggiungere questo dopo la linea Response.AddHeader:

Response.ContentType = "application/octet-stream"; 

Questo costringerà download del file, indipendentemente dal tipo di file.

Problemi correlati