2010-07-12 7 views
5

J'essaie actuellement d'écrire des données (machine client) dans un fichier xml où l'utilisateur peut enregistrer. Cependant, je veux que les utilisateurs puissent décider où ils veulent sauvegarder ce fichier xml écrit. Y at-il des contrôles ou des codes que je peux utiliser pour permettre aux utilisateurs d'enregistrer le fichier?Comment créer un fichier XML avec ASP.NET et le télécharger?

Mise à jour:

est que bonne façon de faire?

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

mise à jour:

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(); 

Répondre

1

ici est le link me aide :)

1

Lorsque vous commencez un téléchargement de fichier, le navigateur du client se chargera de l'emplacement d'enregistrement du fichier.

Si vous voulez forcer le fichier à télécharger au lieu d'ouvrir, ajouter cet en-tête HTTP à votre réponse:

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

j'utilise et j'ai mettre à jour ma question, s'il vous plaît voir et encore ne fonctionnent pas –

+1

essayer ceci: 'l'aide (XmlWriter XW = XmlWriter.Create (Response.OutputStream))' et ne pas faire le ' HttpContext.Current.Response.Write() ' –

+0

également, pas sûr si vous avez remarqué' xw.ToStroing() 'est mal orthographié –

0

Où est le MemoryStream utilisé ? Vous devez passer le StringWriter au constructeur XmlTextWriter puis Response.Write() le contenu du StringWriter

0

Ajouter cette après la ligne Response.AddHeader:

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

Cela forcera le téléchargement de fichiers, quel que soit le type de fichier.

Questions connexes