2009-12-16 6 views
11

Ceci est mon problème. Je charge xml depuis ma base de données et je le pousse vers le client en utilisant du code. Mais le problème est que le navigateur ouvre automatiquement ce fichier XML au lieu de l'offrir en téléchargement.Comment pouvez-vous forcer le navigateur à télécharger un fichier XML?

Existe-t-il un moyen de forcer votre navigateur à télécharger ce fichier sans le montrer?

Je travaille dans un environnement C#, Asp.net (avec IIS7).

Thx

Répondre

20
protected void DisplayDownloadDialog() 
{ 
    Response.Clear(); 
    Response.AddHeader(
     "content-disposition", string.Format("attachment; filename={0}", "filename.xml")); 

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

    Response.WriteFile("FilePath"); 
    Response.End(); 
} 

Cela forcera à télécharger le fichier et ne pas afficher dans le navigateur.

Cela fonctionne pour tous les types de fichiers sans qu'il soit nécessaire de spécifier un type MIME spécial .

+0

thx, cela fait très bien l'affaire. super – user29964

+0

J'ai un problème que la méthode ne fonctionne pas pour la toute première fois le téléchargement .. mais commence à partir de la 2ème fois, il fonctionne bien .. la première fois, au lieu du 'filename 'il affiche le nom de la page' test1' .. une idée pourquoi? – william

+0

pouvez-vous poster un code ici? –

1

Ajouter une disposition de contenu: en-tête de fixation.

Questions connexes