download de fichier

download de fichier - C#/.NET managed - Programmation

Marsh Posté le 02-06-2004 à 09:46:55    

Bonjour,
j'aimerai savoir comment on download un fichier.
j'ai une page aspx avec une liste de fichiers d'un serveur et j'aimerai que si l'on sélectionne le fichier,qu'on puisse le télécharger. Je sais pas comment faire  :cry:  :cry:  
Faudrai que le code soit en C#
 
merci d'avance

Reply

Marsh Posté le 02-06-2004 à 09:46:55   

Reply

Marsh Posté le 02-06-2004 à 11:12:52    

tu met un lien :D

Reply

Marsh Posté le 02-06-2004 à 11:22:24    

ce serait trop facile lol.
En fait je selectionne le fichier puis faut que je clique sur un bouton pour pouvoir le downloader. C'est l'evenement sur ce bouton que je sais pas quoi programmer.

Reply

Marsh Posté le 02-06-2004 à 13:10:46    

ben touvre un FileStream ou un stream du fichier de nom que tu dois recuperer
 
et ensuite tu lis dans ce stream et tu ecris... quelque part. je sais pas ou par contre...
 
ou alors... tu etabli une connection tcp avec ton client sur le port 80 tu envoie tout dans le tube, et normalement le navigateur sen occupe correctement.

Reply

Marsh Posté le 02-06-2004 à 14:14:39    

ok je vais essayer

Reply

Marsh Posté le 03-06-2004 à 08:58:51    

(en C javais fait ca, envoyer tout le contenu dun fichier dans un tube sur port 80, et le navigateur, automatiquement il propodait lenregistrement du fichier avec le bon nom et la bonne extension (stockée en entete) )

Reply

Marsh Posté le 03-06-2004 à 09:08:45    

Tu créé un objet HttpWebRequest avec l'URL de ton serveur, et tu récupères son flux d'écriture (Stream) via sa méthode GetRequestStream().


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-06-2004 à 11:16:09    

il veut pas sniff je fait un  
 
HttpWebRequest RequeteHttp= (HttpWebRequest) WebRequest.Create("http://localhost/WebDAV2/" + tbSource.Text);
Stream  s=RequeteHttp.GetRequestStream();
 
il met une erreur sur  
s=RequeteHttp.GetRequestStream();
et il dit Impossible d'envoyer un corps de contenu avec ce type de verbe.
 :fou:  


Message édité par schmur le 04-06-2004 à 11:17:07
Reply

Marsh Posté le 04-06-2004 à 11:25:28    

Citation :


Stream  s=RequeteHttp.GetRequestStream();  


oui mais non !

Code :
  1. StreamReader s = new StreamReader(RequeteHttp.GetRequestStream());


c'est mieux


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-06-2004 à 11:36:32    

le Code :
 
   
  StreamReader s = new StreamReader(RequeteHttp.GetRequestStream());  
 
 
Indique le même erreur
Impossible d'envoyer un corps de contenu avec ce type de verbe.
:??:  :??:


Message édité par schmur le 04-06-2004 à 11:38:56
Reply

Marsh Posté le 04-06-2004 à 11:36:32   

Reply

Marsh Posté le 04-06-2004 à 11:42:40    

réinstalle le framework, y'a une couille dans le potage


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-06-2004 à 11:45:09    

je suis maudit. T'es sur ?
je suis que stagiaire moi alors si je leur dit qu'il faut réinstaller je sais pas comment ils vont réagir.


Message édité par schmur le 04-06-2004 à 11:48:33
Reply

Marsh Posté le 04-06-2004 à 11:56:12    

ben y'a aucune raison pour que ce code marche pas, ou alors montre le reste du code [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-06-2004 à 11:58:24    

voila mon code il y a pas grand chose.
 
private void btDownload_Click(object sender, System.EventArgs e)
  {
      HttpWebRequest RequeteHttp= (HttpWebRequest) WebRequest.Create("http://localhost/WebDAV2/" + tbSource.Text);
     
   StreamReader s=new StreamReader(RequeteHttp.GetRequestStream());    
 
 
 
 
  }

Reply

Marsh Posté le 04-06-2004 à 12:01:16    

ça devrait pas planter
réinstalle


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 04-06-2004 à 12:05:49    

tas pas genre un stack trace de ton erreur, un truc plus clair
que : Impossible d'envoyer un corps de contenu avec ce type de verbe.  
 
parce que cette erreur, c de lart.

Reply

Marsh Posté le 04-06-2004 à 12:13:51    

voici la page d'erreur.
 
Impossible d'envoyer un corps de contenu avec ce type de verbe.  
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.  
 
Détails de l'exception: System.Net.ProtocolViolationException: Impossible d'envoyer un corps de contenu avec ce type de verbe.
 
Erreur source:  
 
 
Ligne 93 :    HttpWebRequest RequeteHttp= (HttpWebRequest) WebRequest.Create("http://localhost/WebDAV2/" + tbSource.Text);
Ligne 94 :      
Ligne 95 :    StreamReader s=new StreamReader(RequeteHttp.GetRequestStream());  
Ligne 96 :  
Ligne 97 :  
 
 
Fichier source : c:\inetpub\wwwroot\webapplication1\webformuploadfile.aspx.cs    Ligne : 95  
 
Trace de la pile:  
 
 
[ProtocolViolationException: Impossible d'envoyer un corps de contenu avec ce type de verbe.]
   System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state) +405
   System.Net.HttpWebRequest.GetRequestStream() +29
   WebApplication1.WebFormUploadFile.btUpload_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication1\webformuploadfile.aspx.cs:95
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1277
 
 

Reply

Marsh Posté le 04-06-2004 à 13:23:50    

une erreur de droit ? tas le droit decrire sur le server ? c suspect comme histoire. ce "verbe" je capte pas...

Reply

Marsh Posté le 04-06-2004 à 14:13:48    

je travail en local, j'ai tous les droit admin sur le pc et tous les répertoires. Je capte pas.
J'ai droit de vie ou de mort sur tous les fichiers lol


Message édité par schmur le 04-06-2004 à 14:19:49
Reply

Marsh Posté le 04-06-2004 à 14:37:25    

oui mais pour tester, ton user asp, c sensé un user distant.
donc il a pas forcßement les droits ? je me trom pe ?

Reply

Marsh Posté le 04-06-2004 à 14:40:57    

vous traquacez pas j'ai trouvé une autre solution et elle marche sauf que j'ai un autre prob maintenant.
 
voila le code
 
WebClient wc = new WebClient();
wc.DownloadFile( "http://localhost/WebDAV2/" + tbSource.Text,tbDesti.Text);  
 
mon autre prob est que l'utilisateur doit saisir le chemin du nouveau fichier. Comment faire pour qu'il ne saissisent pas tout le chemin mais juste le nom du fichier.
En html il y a un truc qui parcours pour les fichers (input type="file" ) mais est-ce qu'il existe un équivalent pour les répertoires ??


Message édité par schmur le 04-06-2004 à 14:41:39
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed