System.Net upload file [.net] - C#/.NET managed - Programmation
Marsh Posté le 09-03-2005 à 22:15:31
J'ai trouvé cette classe sympa qui respond à ce dont j'avais besoin :
http://www.codeproject.com/csharp/UploadFileEx.asp
Cette classe pourrait rendre à service à d'autres... Et oui, je rappele aux égoïstes que quand on trouvé une solution c'est sympa de la donner aux autres !
Malheureusement, cette classe ne fonctionne pas avec mon cas, donc mon problème doit venir d'ailleurs. Puisqu'elle est supposée fonctionner.
Marsh Posté le 13-02-2011 à 13:09:02
petittigre a écrit : J'ai trouvé cette classe sympa qui respond à ce dont j'avais besoin : |
Pareil pour moi ça ne marchait pas avec l'exemple donné.
Dans le code php qui permet de copier le fichier il y a une erreur.
Il faut remplacer "userfile" par "uploadfile".
En tout cas merci, c'est vraiment l'article que je cherchais !
Marsh Posté le 06-03-2005 à 21:21:03
Hello !
J'essayé de plusieurs façon de simuler l'envoi d'un fichier dans un formulaire web, mais cela ne fonctionne pas.
Mon problème étant que la méthode System.Net.WebClient.UploadFile() framework post dans le champ "file" le fichier (je dois le poster dans "FileTO" ), comme on peut le voir dans le code source de System.Net : http://dotnet.di.unipi.it/Content/ [...] ource.html
J'ai essayé de différentes façons (domage que WebClient soit sealed!) en me basant sur la RFC1867 (Form-based File Upload in HTML). J'aurrai préféré quand même rester sur une classe intégrée telle que System.Net.WebClient que la refaire avec des sockets, car c'est plus évolitif si je veux utiliser un proxy après.
Une idée du probème ??
Merci
const string formFieldName1 = "FileTO";
const string formFieldName2 = "Enter";
const string fileName = "fichier.xml";
string xml = .....
string URI = .....
string boundary = "-------" + DateTime.Now.Ticks.ToString("x" );
WebClient request = new WebClient();
request.Headers.Clear();
request.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary);
string data = String.Format(
"--{0}\r\n" +
"Content-Disposition: form-data; name=\"{2}\"; filename=\"{1}\"\r\n" +
"Content-Type: text/xml\r\n\r\n" +
"{3}\r\n" +
"--{0}\r\n" +
"Content-Disposition: form-data; name=\"{4}\"\r\n\r\n" +
"{4}\r\n" +
"--{0}--",
boundary,
fileName,
formFieldName1,
xml,
formFieldName2);
request.UploadData(URI, Encoding.UTF8.GetBytes(data));