2 Stimmen

Senden eines Bildes über POST Multipart (HTTPRequest)

Ich versuche, ein Bild mit HTTP Post Multipart an einen Server zu senden. Alles andere ist in Ordnung, ich habe alle Boundrys gesetzt und so.

Aber was muss ich vorher an dem Bild machen? Muss ich es in ein Binärformat umwandeln? Hier sind die Header-Daten aus dem Header (mit Fiddler). Dies ist, was ich hochladen muss:

-----------------------------7daea2aa40c80
Content-Disposition: form-data; name="pict"; filename="pic.jpeg"
Content-Type: image/pjpeg

<Binary here ... or at least I think it is> ..
JFIFC (lots more of this I removed)

Haben Sie einen Rat?

2voto

Sie können die Funktion File.ReadAllBytes verwenden, um die Datei in ein Byte[] zu lesen. Von dort aus können Sie einen StreamWriter verwenden, um die Bytes in Ihrer Antwort auszugeben. Es ist keine Konvertierung erforderlich.

0voto

Claus Jørgensen Punkte 25581

Idealerweise sollten Sie eine Content-Transfering-Encoding Einstellung auf base64 verwenden. Dann macht man einfach File.ReadAllBytes, wenn man die Datei in ein Byte-Array umwandelt, um dann die Convert.ToBase64String Methode zur Konvertierung in base64.

Mehr darüber können Sie in dem Wikipedia-Artikel über MIME

Beispiel

string data =
       @"----------------------------7daea2aa40c80\n";
       + @"Content-Disposition: form-data; name="pict"; filename="{0}"\n"
       + @"Content-Type: image/pjpeg\n";
       + @"\n{1}";

string filename = "pict.jpg";
string bytes = Convert.ToBase64String(File.ReadAllBytes(filename));
string request = string.Format(data, filename, bytes);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X