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));