Vous pouvez configurer un gestionnaire de fichiers ashx. Votre ashx prend la demande par la chaîne de requête, charge le fichier approprié dans la mémoire, définit les en-têtes de réponse appropriés et les flux du fichier dans le navigateur:
FileInfo fileInfo = new FileInfo(PATH-TO-YOUR-FILE); //You need to specify this
context.Response.ContentType = YOUR-CONTENT-TYPE; //And this
context.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
context.Response.WriteFile(fileInfo.FullName);
context.Response.Flush();
context.ApplicationInstance.CompleteRequest()
Cela vous permet d'avoir un certain contrôle à grain fin sur le contenu qui est étant livré si vous avez des inquiétudes sur la sécurité ou peut-être garder la trace de qui a téléchargé quel fichier, etc
Qu'est-ce qui se passe exactement lorsque vous cliquez sur le lien? Rien ne se passe? Est-ce qu'il s'ouvre dans le navigateur au lieu d'ouvrir la boîte de dialogue "Enregistrer sous"? – Greg
Non, rien ne se passe. Je souhaite avoir la boîte de dialogue Enregistrer sous – Kovu
Quelle est la demande envoyée par le navigateur? Quelle est la réponse du serveur? Sans avoir connu ce problème auparavant, je ne pense pas qu'il y ait suffisamment d'informations pour répondre à votre question. Utilisez Fiddler ou un outil similaire et dites-nous à quoi ressemble la requête et la réponse HTTP. Le comportement est-il identique entre les navigateurs? – Bryan