download de fichier - C#/.NET managed - Programmation
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.
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.
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) )
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().
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.
Marsh Posté le 04-06-2004 à 11:25:28
Citation : |
oui mais non !
Code :
|
c'est mieux
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.
Marsh Posté le 04-06-2004 à 11:42:40
réinstalle le framework, y'a une couille dans le potage
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.
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
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());
}
Marsh Posté le 04-06-2004 à 12:01:16
ça devrait pas planter
réinstalle
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.
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
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...
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
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 ?
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 ??
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
Faudrai que le code soit en C#
merci d'avance