Wie lade ich mehrere Dateien mit dem Webclient hoch UploadFile, UploadValues in C#?Wie lade ich mehrere Dateien mit dem Webclient hoch UploadFile, UploadValues in C#?
Antwort
This blog post Details genau, wie Sie mehrere Dateien mit WebClient hochladen.
Wenn Sie sowohl Formularfelder als auch eine Datei im selben POST hochladen möchten, können Sie WebClient nicht wie gewünscht verwenden, sondern müssen erweitert werden. Hier ist ein Auszug aus this article zu erklären, was benötigt wird:
die einzige Option ist einem benutzerdefinierter Implementierung zu erstellen, die entspricht rfc1867, rfc2388 und die W3C multipart/form-data Spezifikation, die wird Datei-Upload mit zusätzlichen Formularfeldern und Exposes ermöglichen Kontrolle von Cookies und Kopfzeilen.
Hier sind drei Implementierungen leicht unterschiedliche Ansätze, aber alle sollten mehrteilige Formulardaten zu ermöglichen, arbeiten:
- http://www.codeproject.com/Articles/72232/Csharp-File-Upload-with-form-fields-cookies-and-he.aspx
- http://www.codeproject.com/KB/cs/uploadfileex.aspx
- http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx
WebClient.UploadValues ist nicht dafür gedacht, Dateien hochzuladen - stattdessen ist es gewöhnt sendet POST-ed-Formularwerte an den Server. Sie möchten WebClient.UploadFile zum Hochladen von Dateien oder eines der oben genannten erweiterten Beispiele verwenden.
Oh nein! Ihr Link zum Blog, zeigen Sie auf diesen Beitrag anstelle des eigentlichen Blogeintrags. Kannst du es bitte reparieren? – SuitUp
oops, sorry, jetzt behoben. –
Ich denke diese Lösung ist nicht gut für mich, weil ich jede Datei in separaten POST sende und ohne UploadValues kann ich keine weiteren Informationen senden. Können Sie mir helfen, Dateien in einem POST und mit zusätzlichen Daten zu senden? – SuitUp