2011-03-21 2 views
1

J'utilise ashx pour servir des images à partir d'une base de données, est-il de toute façon d'avoir un utilisateur cliquer sur un lien qui leur permet de télécharger le fichier sur l'ordinateur. (IE, il montre la boîte de dialogue Enregistrer) Comme vous téléchargez un fichier. Est-ce possible?ASHX Image Télécharger sur Cliquez

Répondre

6

Si vous voulez qu'il invite à enregistrer assurez-vous que vous ajoutez la ligne suivante lors de la création de la réponse:

context.Response.AppendHeader("Content-Disposition", 
    "attachment;filename=" + filename); 

Cela rendra le navigateur traiter comme une pièce jointe et rapide avec la sauvegarde de dialogue.

EDIT: Sur la base de vos commentaires assurez-vous que vous construisez votre réponse correctement:

// set attachment header like above 
// then you need to get your file in byte[] form 
byte[] dataYouWantToServeUp = GetData(); 
// you can set content type as well 
yourHttpContext.Response.ContentType = "image/jpg"; 
// serve up the response 
yourHttpContext.Response.BinaryWrite(dataYouWantToServeUp); 
+0

si j'utilise ce 'Response.AppendHeader (" Content-Disposition "," pièce jointe; filename = "+" evimg.ashx? Id = 18 ");' il essaie de télécharger le fichier evimg.ashx_id = 18 qui ne contient rien. – atrljoe

+0

@atrljoe vous ne renvoyez probablement pas la réponse correctement alors. Pouvez-vous publier le code que vous utilisez pour créer votre réponse? – Kelsey

+0

l'a obtenu pour travailler merci. – atrljoe

0

Je pense que si le navigateur est capable d'ouvrir le type du fichier que vous essayez d'obtenir, il l'ouvrira sans demander. Si pour les instants, le fichier est au format zip, le navigateur ne pourra pas l'ouvrir et vous demandera de le télécharger.

+0

Mais faire une recherche Google que j'ai trouvé ceci: http: //www.xefteri.com/articles/ show.cfm? id = 8 sur le téléchargement de n'importe quel fichier dans le navigateur. –

Questions connexes