• 締切済み

multipart/form-dataを使ったデータ送信について

色々調べましたが分からなかったので質問させてください。 ある配列データをmultipart/form-dataを使い送信したいと、 考えています 例) [sample1.php] $data = array("saitama","kanagawa","chiba"); //このsample1.phpファイルから$dataをmultipart/form-dataを使い、 //sample2.phpファイルに送信したいと考えています。 [sample2.php] //$dataを受け取る 調べましたがフォームを介して送信する方法はいくつかありましたが、 フォームを使わずに送信する方法がわかりませんでした。 どなかた教えていただけないでしょうか。 よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • takapiii
  • ベストアンサー率55% (944/1707)
回答No.2

sample1.phpでは、HTTP_Requestで配列$dataをsample2.phpにHTTP送信し、sample2.phpの応答を受け取っています。 sample2.phpでは、受け取った$_POSTの中身を書き出しています。 結果、sample1.phpの配列をsample2.phpに渡せている事が証明されます。 これを応用すれば実現可能かと思います。 sample1.php <? require_once "HTTP/Request.php"; $data = array("saitama","kanagawa","chiba"); $req =& new HTTP_Request("http://localhost/sample2.php"); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addPostData("data", $data); $response = $req->sendRequest(); if (PEAR::isError($response)) { echo $req->getMessage(); }else{ echo $req->getResponseBody(); } ?> sample2.php <? print_r($_POST); ?>

  • takapiii
  • ベストアンサー率55% (944/1707)
回答No.1

multipart/form-dataを使用したい理由は何でしょうか。 PEARのHTTP_Requestを使用すれば、GET,POSTでの送信は可能です。 ファイルアップロードも可能なようです。 http://www.phppro.jp/school/pear/vol8/1 後、以下の人のブログでHTTP_Requestでmultipart/form-data送信をしているみたいですが、たまたま見つけたサイトなので真偽のほどは分かりません。 ご自身で調べてみてください。 http://d.hatena.ne.jp/sdkt4a/20090318/1237339235

k_taku0808
質問者

補足

回答ありがとうございます。 返信遅くなってしまってすいません。 >multipart/form-dataを使用したい理由は何でしょうか。 自分自身勉強不足でmultipart/form-dataの詳しいことは正直分かっていません。 まずそこから勉強ですね。。。 実際にやりたいこととしては、 1.[sample1.php]で定義した配列をどうにかして、[sample2.php]に送信 2.[sample2.php]で配列のパラメータを加工 3.加工したパラメータ配列を再度[sample1.php]に返す。 定義した配列のバイト数がかなり大きくなるためGET送信ではなくPOST送信を使用したいと考えています。 上記のような処理を行いたい場合、HTTP_Requestを使用するのが普通なんでしょうか?

関連するQ&A

  • formの情報を連想配列に

    お世話になります。 formのチェックボックスの情報を連想配列に格納したいのですが □東京 □神奈川 □千葉 □埼玉 □茨城 [ 送信 ] というフォームがあったとして 東京、神奈川、千葉の3つにチェックが入り送信されると この3つの値を格納するにはどうすればよいのでしょうか? 単純に、下のようにしたくて・・・ array_pushを使うのかなと思うのですが上手くいきません。 Array ( [0] => tokyo [1] => kanagawa [2] => chiba ) ご教授お願いします。

    • ベストアンサー
    • PHP
  • multipart/form-data と $_FILE[ ]

    いつもお世話になってます。 multipart/form-dataにて、ファイルを受け取るとき、PHPでは、$_FILE変数に name="xxxx1"の名前が、$_FILE["xxxx1"]で取ることができます。 そこで、multipart/form-dataの filename="xxxxx.csv"という値は、 $_FILE["xxxx1"]["name"]に入ってくるのか、 それとも、 $_FILE["xxxx1"]["temp_name"]に入ってくるのかが、わかりません。 いろいろググッては見たのですが・・・。 どなたか、わかる方いらっしゃいますか?

    • ベストアンサー
    • PHP
  • JSP「multipart/form-data」

    enctype= "multipart/form-data"をでsubmitしたテキスト・チェックボックス・ラジオボタンデータは、 request.getParameterでの取得はできません。 "multipart/form-data"を指定してかつテキストデータ等を取得する方法はありませんか。 ソースの追加のみで行いたいです。

    • ベストアンサー
    • Java
  • safari とmultipart/form-data

    自作のCGIに対して、safariで動かすと正しく動作しないという苦情がきました。 (画像をアップできるようにしているため)multipart/form-data のフォームでデータを送信する形式をとっているのですが、報告してくれた方によるとWindowsのIEやNetscapeではちゃんと動作することを確認済みで、MacのNetscapeでも確認済みのようです。なのでsafariというブラウザに対応した記述をしていないからだとは思うのですが、私自身Macユーザーではないので自分で動作確認が出来ません^^;送信されるデータ形式が違うのでしょうか? 普通ならば -----------------------------7dxxxxxxxxxxxx Content-Disposition: form-data; name="test_A" aaaaa -----------------------------7dxxxxxxxxxxxx Content-Disposition: form-data; name="test_B" bbbbbb -----------------------------7dxxxxxxxxxxxx-- といった感じですよね?

    • ベストアンサー
    • HTML
  • enctype="multipart/form-data"

    アップローダーのHTMLで、FORMのタグに enctype="multipart/form-data"が必要なのはバイナリファイルをアップロードする時だけですか?

    • ベストアンサー
    • HTML
  • multipart/form-dataを使用した場合変数が受け取れない

    フォームにmultipart/form-dataを使用した場合いつも通り$_POSTが受け取れないのですが、試しにエンコーディングタイプを無しにしたら普通に受けとれます。 multipart/form-dataを使用した場合$_POSTの受け取り方も変わってしまうのでしょうか? 勝手な予想ではいつも通り+$_FILESが使えるようになるだけだと思っているのですが…。 ページ自体のエンコードはeuc-jpです。

    • 締切済み
    • PHP
  • C++ multipart/form-data f

    C++ multipart/form-data file送信 VC++ 2010 winhttp.h を使い ファイルをアップするアプリケーションを作成したいと思ってます。 WinHttpSendRequest の記述の仕方が調べても わかりませんでした。 よろしくお願いします!

  • formでファイルアップロードとテキストデータを送信したい

    JSPとServletでプログラムを作っております。 フォームで次のことをしたいと思っております。 1、DBにファイルをアップロードする。 2、DBにテキストデータを登録する。 この場合、 <form enctype = "multipart/form-data"> <form enctype = "text/plain"> を別個に指定できるのでしょうか? 出来ないとしたらどういう解決方法があるのでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • iis+cgiでmultipart/form-data送信がうまくいかない

    これまでLinux+Perl/CGIで構築していたWEBサーバをIIS+Perl/CGIに移す必要が生じ、新規にIISによるWEBサーバを構築しました。 一気にコンテンツを移動してもハマるだけだと考え、まずは簡単なコードを記述しCGIが動作するかどうかテストしています。 POSTによるinput type=textのデータ表示まではうまく行きましたが、ファイルアップロードのところで詰まりました。 IIS(Windows)によるWEBサーバの構築は初めてで、何が問題なのかサッパリわかりません。 どなたか問題点あるいはどこをチェックすれば良いかご指摘いただけませんでしょうか。 ●やった事 PerlにてPOSTを利用しmultipart/form-dataにてファイルをアップロードするシンプルなコードを書き、第一段階としてMIMEエンコードされたものをブラウザ上に表示するしようとしてみた。 コードは最下方の通り。 ●症状 送信を実行してもアップロード中のまま(ウィンドウマークが動き続けている)で、IISに設定してある10分程のタイムアウト時間を過ぎて終了してしまう。 TXT、XLS、DOCなどファイル種を変えて試しても全く同じ症状。 ●環境:Windows2000ServerSP4 IIS5.0 Perl5.8.8 *******アップロード画面****** <HTML> <HEAD> <TITILE>ファイルのアップロード</TITLE> </HEAD> <BODY> <FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST"> ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR> <INPUT TYPE="submit" VALUE="送信"> </FORM> </BODY> </HTML> **********ここまで*********** *******CGI******************* #!/perl/bin/perl read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>test</TITLE>\n"; print "</HEAD>\n"; print "<BODY BGCOLOR=\"#ffffff\">\n"; print "$buffer"; print "</BODY>\n"; print "</HTML>\n"; exit; ********ここまで***********************

    • ベストアンサー
    • CGI
  • XMLデータをPOSTで送信・受信する方法

    PHP初心者です。 以下のようなXMLのデータをPOSTで送信、送信されてきたXMLデータを受信する方法がわからず行き詰っています。 フォームで以下のXMLデータをtest.phpに送ってみようと試しているのですが、valueにXMLのデータをどのようにセットすればいいのかわかりません。 そもそもこの方法が合っているのかどうかも自信がない状態です。 仕事の関係でどうしても今週中に仕上げなければならず、 大変困っています。 どなたかアドバイスをください。 よろしくお願いします。 <form action="test.php" method="post">   <input type="hidden" name="xmldata" value="">   <input type="submit" value="送信"> </form> 【test.xml】 <?xml version="1.0" encoding="UTF-8"?> <test> <sample01>あいうえお</sample01> <sample02>かきくけこ</sample02> </test>

    • 締切済み
    • PHP

専門家に質問してみよう