FORMを使わずにPHP(ソケット通信)でPOSTを利用して、クライアントPCの
ファイルをサーバーにアップロードしたいのですが、うまくいきません。
..レスポンスは、「HTTP/1.1 200 OK」で戻って来るのですが、
$_FILESの中が空の状態です。
一応、POSTでメッセージボディのデータも送れるレベルにはなったのですが
ファイル転送ではうまくいきません。
他の(過去)投稿などの情報もいろいろ調べたり、書籍なども参考にしましたが
いまひとつ良くわかりません。
(サーバーの設定によっても変わるのでしょうか)
根本的な間違いなどもあるかも知れませんが、以下のような送信文で
試しています。
ご存知の方がいらっしゃいましたら是非ご教授お願いします。
---(↓以下送信文 sock_send.php)------------------------
POST /test/sock_recv.php HTTP/1.0
host: www.hogehoge.com
Content-Type: multipart/form-data; boundary=transfer
//Accept-Encoding: gzip
//Accept-Language: ja
//Accept-Charset: Shift_JIS,EUC-JP,UTF-8
Accept: text/*, */*
Content-Length: 126
Connection: close
--transfer
Content-Disposition: form-data; name="sendfile"; filename="C:\temp\...\test.txt"
Content-Type: text/plain
--transfer
---(↑以上送信文)------------------------
注)//はコメント部、空白行は改行しています。
コメントも含めてヘッダーは幾つかの組み合わせで試しています。
尚、環境はレンタルサーバーで以下の内容です。
Server: Apache/2.0.46 (Red Hat)
X-Powered-By: PHP/4.4.2
テストファイルの容量は100バイト以下の小さいものです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Content-Typeのところにmultipart/form-data
書いてあるようですが、Content-TypeはGET リクエストがなされた場合に送ら
れるエンティティボディのメディアタイプを示すものなのでPOSTの時
は無視されるのでは。
Content-Disposition; form-dataを
Content-Disposition; multipart/form-dataにするとうまくいくのでは
ないかとおもいます。
この回答への補足
アドバイスありがとうございます。
しかし残念ながら、教えて頂いた事を盛り込んで見ましたがだめでした。
実は、なかなか把握できない状態が続いており困っていましたが
初心に立ち返り、実際の通信データをキャプチャーして、それを
シミュレーションした方が一番いいのではないかと思っています。
ただ、それはそれで少し時間かかりそうですので、皆様のアドバイスなど
参考にしながら、チャレンジしてみたいと思います。
うまくまとまりそうでしたら、また追ってご報告できればと思います。
ありがとうございました。
No.2
- 回答日時:
(↑以上送信文)で終わりなら肝心のファイルの内容を送信してない様に見えますが
この回答への補足
ご回答ありがとうございます。
> (↑以上送信文)で終わりなら肝心のファイルの内容を送信してない様に見えますが
実は不明な所としてその部分もあります。
一応、テキストファイルを送る事を想定して数十バイトを入れ込んでテストも
していますが、$_FILESは読めず状態は変わりませんでした。
---(↓上記抜粋略)------------------------
Content-Length: 198
Connection: close
--transfer
Content-Disposition: form-data; name="sendfile"; filename="C:\temp\...\test.txt"
Content-Type: text/plain
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
--transfer
---(↑以上送信文)------------------------
ここが良くわからないのですが、送信データに関しては自分でここに
記述しないといけないのでしょうか?
そして、これが画像とかでしたらバイナリーデータでの記述となるのでしょうか。
ff2021224a4b etc のような表現?? それとも別の表現??
その場合、画像のサイズ(場合によって数メガ以上)なども含めて、何か微妙な不明点もあります。
それと、自分で送信データを記述するのでしたら "C:\temp\...\test.txt" のような
記述よりも >> "test.txt" の方が良いのでしょうか?
(実際やってみても関係ないようでしたが)
もう少し詳しく教えて頂ければ助かります。
よろしくお願いいたします。
No.1
- 回答日時:
確か、PHPのグローバル関数『$_FILES』はPOSTでアップロードしないとダメじゃなかったでしたっけ??
他の方法だと、この関数は使えないって書いてあった気がします。。。
参考URL:http://php.s3.to/man/features.file-upload.html
この回答への補足
早速のご回答ありがとうございます。
通常の場合、FORMのMETHOD="POST"で指定しますが
ソケット通信を利用した場合も POSTでの送信となり、同様の扱いに
なるかと思いますが、違うのでしょうか?
(表面的には違うようでも、同じHTTPプロトコルかと思っていますが)
もし、違うようでしたら $_FILESに変わる方法をお教え願いませんか。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
one drive のアップロード失敗...
-
PHP_アップロード
-
ファイルのアップロード
-
pixivのイラスト投稿の仕方を教...
-
ファイルアップロードしたもの...
-
ファイルアップロードの上限を...
-
unlinkでどうしてもファイルが...
-
携帯からファイルアップロード...
-
こちらはただの直列処理ですか?
-
ワードプレス、Contact Form 7...
-
拡張子php画像をjpg画像等に変...
-
PHPとCSVで簡易データベースな...
-
include先でのinclude元の変数...
-
リダイレクト元のURLの取得方法...
-
メールフォームのタイトルが文...
-
php エラー
-
PHPのif文でその処理を途中で抜...
-
VBでメールを送る時のSMT...
-
別PHPファイルに変数を渡す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ファイルアップロードの上限を...
-
youtubeに音声のみのmp4ファイ...
-
one drive のアップロード失敗...
-
FTPClientで転送結果(OKかFAIL)
-
VBでクラウドストレージにア...
-
ftpでアップロードが出来ない
-
アップロードできるファイルサ...
-
ファイルをGET送信でアップロー...
-
FTP接続の例外処理
-
「クラウドにアップロード」」...
-
PHP 画像アップロード 重複防止
-
aws cloud9というものを使って...
-
ファイルサイズがpost_max_size...
-
ファイルアップロードしたもの...
-
csvファイルをMySQLにインポー...
-
全角ファイル名をアップロード...
-
ファイルのアップロードで、フ...
-
携帯からファイルアップロード...
-
SmartyでHTMLソースの変更が反...
おすすめ情報