2

HTTP Post Multipart を使用して、サーバーに画像を送信しようとしています。他のすべては問題ありません。すべての境界が設定されています。

しかし、事前に画像に何をしなければなりませんか?バイナリに変換する必要がありますか? これは、ヘッダーからのヘッダー データです (Fiddler を使用)。これは私がアップロードする必要があるものです:

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

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

何かアドバイス?

4

2 に答える 2

2

File.ReadAllBytes 関数を使用して、ファイルを byte[] に読み込むことができます。そこから、StreamWriter を使用してバイトを応答に出力できます。変換は必要ありません。

于 2010-02-20T23:00:59.303 に答える
0

理想的には、base64 に設定された Content-Transfering-Encoding を使用する必要があります。次に、ファイルがバイト配列に変換されている場合は、単純に File.ReadAllBytes を実行し、Convert.ToBase64Stringメソッドを使用して base64 に変換します。

詳細については、Wikipedia のMIMEに関する記事を参照してください。

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);
于 2010-05-09T17:31:21.787 に答える