質問 |
||
| 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までは正常で、ファイル内容の受信でとまってしまっているようです。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |