2016-11-18 4 views
0

WebClient ist eine sehr gute Abstraktionsschicht im Vergleich zu HttpPostRequets, in meisten Situationen.Wie kann ich den Formularnamen in WebClient.UploadFile angeben?

using (WebClient webClient = new WebClient()) 
{ 
    return webClient.UploadFile(url, path); 
} 

jedoch die Klasse scheint nicht eine Option für die Namen des Eingabefeldes aufzunehmen. Hier muss "file" der Name des Eingabefeldes sein.

Von Wireshark

Content-Disposition: form-data; name = "Datei"; filename = "test.txt"

Gibt es eine Möglichkeit, das Feld "name" anzugeben, ohne zu HttpPostRequest zurückzukehren?

+0

Haben Sie versucht, 'NameValueCollection' zu betrachten? Auch gibt es eine [andere Frage, die von Interesse sein könnte.] (Http://stackoverflow.com/questions/11048258/uploadfile-with-post-values-by-webclient) – techvice

+0

Ich habe diese Frage und auch eine gesehen code [Projektartikel] (http://www.codeproject.com/Articles/8600/UploadFileEx-Cs-WebClient-UploadFile-with-more-fu), aber ich denke, dass es eine Möglichkeit geben muss, den Namen von zu ändern Das Eingabefeld verwendet eine unterstützte Art von 'WebClient'. Microsoft würde nicht einfach "davon ausgehen", dass sich jede Datei in einem Steuerelement befinden muss, das genau "Datei" genannt wird **. – bytecode77

Antwort

2

Es scheint, dass dies hardcoded ist. View source here für WebClient, gehen Sie zu Zeile 573.

Sieht so aus, als müssten Sie diesen Teil selbst implementieren, wenn Sie das möchten. Ich fand einen Blogeintrag, der vielversprechend aussah (da er den Namen angepasst hatte). You can find that here.

+0

Es sieht so aus, als könnten wir den Namen hier wirklich nicht ändern. Hoffentlich wird Microsoft es irgendwann als Parameter zur Verfügung stellen ... – bytecode77

Verwandte Themen