Bonjour,
Je cherche u comosant graphique asp.net qui permet de choisir un dossier
à partir de disque dans-lequel je vais sauvegarder un fichier.
Merci d'avance
Bonjour,
Je cherche u comosant graphique asp.net qui permet de choisir un dossier
à partir de disque dans-lequel je vais sauvegarder un fichier.
Merci d'avance
Bonjour,
Tu veux envoyer un fichier sur le serveur et ensuite le mettre dans un dossier bien précis, si c'est cela alors tu vas le faire en 2 étapes :
1. composant FileUpload qui va envoyer le fichier vers le serveur
2. ensuite tu fais ce que tu veux du fichier !
Jettes un oeil à ce bout de code s'il correspond à ce que tu veux faire :
nachtigal!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 protected void BtnUpload_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) try { //point d'entrée général!!! string repGlobal = ConfigurationManager.AppSettings["RepertoireDocuments"]; string myFolder = String.Empty; string repDocums = String.Empty; string repImages = String.Empty; //string repVideos = String.Empty; //est-ce que l'user a défini un répertoire physique?? if (!String.IsNullOrEmpty(repGlobal)) { //répertoire dédié Documents!! repDocums = System.IO.Path.Combine(repGlobal, "Documents\\"); //on le créé s'il n'existe pas!! if (!System.IO.Directory.Exists(repDocums)) System.IO.Directory.CreateDirectory(repDocums); //répertoire Images!! repImages = System.IO.Path.Combine(repGlobal, "Images\\"); if (!System.IO.Directory.Exists(repImages)) System.IO.Directory.CreateDirectory(repImages); } else { // "~/Data/Documents/" : celui-ci existe tjrs!! repDocums = HttpContext.Current.Server.MapPath("~/Data/Documents/"); repImages = HttpContext.Current.Server.MapPath("~/Data/Images/"); } //nom de sauvegarde généré automatiquement ! string nomcourt = System.IO.Path.GetRandomFileName(); // Guid.NewGuid().ToString(); //extension du fichier d'origine ! string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName); //nom de sauvegarde ! string nomsvgde = System.IO.Path.ChangeExtension(nomcourt, ext); //Nomphysique : nom system (50char) NomphysTextBox.Text = nomsvgde; //Nomdocument : nom donné au document, modifiable par l'user (512char) NomdocTextBox.Text = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName); //si c'est une image on sauvegarde dans le dossier dédié!!! string typefic = FileUpload1.PostedFile.ContentType; if (typefic.StartsWith("image") || typefic.StartsWith("video") || typefic.StartsWith("audio")) { myFolder = repImages; } else { myFolder = repDocums; } //on sauvegarde, on sauvegarde sur le serveur ! FileUpload1.SaveAs(myFolder + nomsvgde); //info après sauvegarde ! LabelMessage.Text = "Nom du fichier: " + FileUpload1.PostedFile.FileName + "<br>" + FileUpload1.PostedFile.ContentLength + " kb<br>" + "Content type: " + FileUpload1.PostedFile.ContentType + "<br>" + "Sauvegardé sous : " + nomsvgde; } catch (Exception ex) { NomphysTextBox.Text = ""; NomdocTextBox.Text = ""; LabelMessage.Text = "ERREUR: " + ex.Message.ToString(); } else { LabelMessage.Text = "Vous devez sélectionner un fichier, absolument!"; } }
ok, je vois!
google ("asp.net browsing folder")
... par exemple cet excellent article : File System Browsing
devrait répondre à ton souci !!
nachtigal!!
Ceci ouvre une boite de dialogue et permet à l'utilisateur de sélectionner le dossier où il va sauvegarder son fichier !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 protected void lnbDownloadFile_Click(object sender, EventArgs e) { String YourFilepath; System.IO.FileInfo file = new System.IO.FileInfo(YourFilepath); // full file path on disk Response.ClearContent(); // neded to clear previous (if any) written content Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "text/plain"; Response.TransmitFile(file.FullName); Response.End(); }
nachtigal!!
Copie/colle ton code et explique exactement ce que tu veux, nous nous efforcerons de t'aider !!
nachtigal!!
voila mon code:
j'ai une boite de dialogue qui va sauverder le fichier dans le dossier de telechergement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected void Button1_Click(object sender, EventArgs e) { String YourFilepath = @"D:\file.csv"; System.IO.FileInfo file = new System.IO.FileInfo(YourFilepath); // full file path on disk Response.ClearContent(); // neded to clear previous (if any) written content Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "text/plain"; Response.TransmitFile(file.FullName); Response.End(); }
et elle me donne pas le choix de sélectionner un dossier destinataire
en fait, dans la boite de dialogue, l'utilisateur doit choisir un dossier.
Bonjour sayfouche,
C'est bizarre ce que tu rapportes là dans la mesure où dès que l'utilisateur a la boite de dialogue qui s'ouvre en sauvegarde locale, il peut faire ce qu'il veut, cliquer sur les nombreux boutons pour changer le disque ou le dossier de destination, renommer le fichier avant sauvegarde, etc...
Tu n'a pas à gérer cela par programme, dès que tu a envoyé la boite de sauvegarde l'utilisateur fait ce qu'il vaut après !!
J'ai un autre bout de code pour toi, je l'utilise dans mes applications sans soucis :
Essaye de l'adapter à ta sauce et tiens nous au courant!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 using System.Net; string myPdf = Server.MapPath("~/SomePDFFile.pdf"); WebClient client = new WebClient(); Byte[] buffer = client.DownloadData(myPdf); Response.ContentType = "application/pdf"; Response.AddHeader("content-length", buffer.Length.ToString()); Response.BinaryWrite(buffer);
nachtigal!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager