ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4023393 画像ファイルの受信
質問者:kjhgkkk ブラウザのフォームから送られたファイルデータを読み取り、保存するプログラムを作成しています。
socket() bind() listen() accept()
を用いてブラウザから届いたマルチパートデータ(以下のような)

ヘッダ

-----------------------------boundary
Content-Disposition: form-data; name="〜"; filename="〜"
Content-Type: text/plain

ファイル内容
-----------------------------boundary

をrecvして、そこからファイル内容を取り出すという方法を考えていたのですが、画像ファイルを受信するとrecvが途中で止まってしまいます。textファイルでの動作は確認しました。

他の方法でも結構ですので、ブラウザから画像ファイルを受信できる方法を伝授いただけるとありがたいです。
困り度:
  • すぐに回答を!
質問投稿日時:
08/05/15 03:24

回答

ANo.1 送信が終わっているのに recv してブロックしてるのでしょうか
recvの終了はどうやって判定してますか
とりあえず受信は別スレッドにしたほうがいいでしょう
回答者:php504
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/15 08:28
この回答への補足解答ありがとうございます。
recvの終了の判定は、recvを一定数バイト(ここでは32バイトでやっています)ずつ行い、実際にrecvしたバイトが32に満たない場合に終了というようにしています。
ちなみに画像を受信した場合Content-Disposition、Content-Typeまでは正常で、ファイル内容の受信でとまってしまっているようです。
この回答へのお礼この回答にお礼をつける(質問者のみ)