プロが教える店舗&オフィスのセキュリティ対策術

ブラウザからファイルをアップロードするように、PHP内で同じことを実現させたいと考えています。
fsockopenを使用してGETやPOSTをすることは実現できていますが、ファイルのアップロードとなると少々勝手が違い、うまいことできません。
現状では下記のようなものを送信させているのですが、受け取り側のPHPで認識できません。

POST /upload.php HTTP/1.0
host: 127.0.0.1
Content-Type: multipart/form-data; boundary=---test
Connection: close
Content-Length: 120

---test
Content-Disposition: form-data; name="test"; filename="test.txt"
Content-Type: text/plain

testtest
---test

現状、テスト用に upload.php というので受け取っているのですが、$_FILES 変数は空の状態です。
基本的なところを理解していないので、根本的に間違っていたり、足りないところがあるような気がするのですが…。
よろしくお願いします。

A 回答 (2件)

区切り文字の解釈が間違っています


boundary=hogehoge
の場合に区切り文字は
--hogehoge
になります。
boundary=-test
にするか
-----test
で区切りましょう
    • good
    • 0
この回答へのお礼

できました!
単純なことだったんですね。
どこぞのサイトでサンプルを見たら、質問に書いたようになっていたので、それが間違っていたようです。
回答ありがとうございました。助かります。

お礼日時:2006/03/31 12:04

連続ですいません。


最後の区切り文字の後に--をつけましょう(無くても動作はすると思いますが)

参考URL:http://rfc.net/rfc1867.html#s6.
    • good
    • 0
この回答へのお礼

再びありがとうございます。
参考URL、参考にさせていただきます。

お礼日時:2006/03/31 12:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!