Bonjour,
Je souhaite lancer le téléchargement (coté client) d'un fichier situé sur le serveur, lorsque l'utilisateur clique sur le bouton "Télécharger".
Je ne sais pas quoi utiliser Response.Redirect ou Server.Transfer?
Merci d'avance.
Version imprimable
Bonjour,
Je souhaite lancer le téléchargement (coté client) d'un fichier situé sur le serveur, lorsque l'utilisateur clique sur le bouton "Télécharger".
Je ne sais pas quoi utiliser Response.Redirect ou Server.Transfer?
Merci d'avance.
Si c'est coté client alors une simple balise hypertexte avec l'addresse du fichier à télécharger, et le tour est joué.
Code:<A href="http://monserveur/downloadfiles/Monfichieratelecharger.xxx">Telecharger</A>
Merci pour cette solution.
Je souhaite lancer le téléchargement avec une ligne de code en C# dans la méthode "Button_Click".
Comment faire?
Server.Transfer ne permet que d'effectuer un transfert entre pages ASPX.
Response.Redirect permet de faire ce que tu souhaites, mais il y a un aller-retour invisible vers le client et donc une perte inutile de performance.
Sinon, il est possible d'ouvrir le fichier via FileStream en lecture non exclusive et d'écrire directement dans le Response.OutputStream.
Il y a aussi la solution de mettre un peu de javascript dans ta page lorsque tu passes dans ton evenement boutton afin d'ouvrir une popup vers le fichier à télécharger. M'enfin ca depend de comment tu souhaites télécharger...
Sinon,
A+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 FileInfo fileInfo = new FileInfo(@"C:\temp\fichier1.txt"); byte[] buffer = new byte[2048]; int block; using (FileStream fs = File.OpenRead(fileInfo.FullName)) { while ((block = fs.Read(buffer, 0, buffer.Length)) > 0) { Response.OutputStream.Write(buffer, 0, block); } } this.Page.Response.ClearHeaders(); this.Page.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", fileInfo.Name)); this.Page.Response.End();
Merci Immobilis. C'est ce type de solution que je recherchais.
Je l'ai cependant adapté puisque l'application tourne sur un serveur.
Au lieu de :J'ai remplacé par :Code:FileInfo fileInfo = new FileInfo(@"C:\temp\fichier1.txt");
MerciCode:
1
2 string path = Server.MapPath(""); FileInfo fileInfo = new FileInfo(path + "/App_Data/fichier1.txt");