- ベストアンサー
_URL_の意味がわからない
のですが例えば <FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Send this file: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Send File"> </FORM> においてファイルを入力してサブミットすればどういうことがおきるのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
恐らくPHPスクリプトのスキンファイルについての質問だろうと推測します。 (この場合PHPのカテゴリに書くことが正しいのですが…) #1の補足欄にかかれている内容に対する回答ですが、 $xxxや$yyyに適当な文字を代入した場合、 代入した文字が表示されてしまいますよね。 ファイル名を表示したい場合は すでにフォームから受け取っているであろう値を もらってこなければなりません。 フォームから渡されたファイルの名前は「$_FILES[要素名]['name']に入っています。 今回の場合、ファイル名が入ったフォーム要素は 「userfile」と言う名前が付けられているので x.htmlの先頭で 「$yyy = $_FILES['userfile']['name']」 とすればファイル名が表示されます。 ですが、ファイルの拡張子が「html」では PHPとして実行しない場合がほとんどですので、 ファイル名を「x.php」などに変更してくださいね。
その他の回答 (3)
- wolv
- ベストアンサー率37% (376/1001)
回答3のお礼への回答: 「FORMからPOSTでサブミットしたデータが、/tmp/以下に一時的に保存されて、すぐ消される」 というのは、たぶん仕様で、変えられません。 やるとしたら、ACTIONで指定したファイルで「適当な場所にファイルを作成し、書き込む」という動作をさせることになります。 具体例: … ACTION="save.cgi" … save.cgiの中身 #!/bin/csh -f cat > /tmp/tmpfile.$$ echo Content-Type: text/html echo echo "<html>" echo "<head><title>メッセージ</title></head>" echo "<body>投稿データは/tmp/tmpfile.$$に保存されました。</body>" echo "</html>" 実際にこんなものを公開すると、/tmp/tmpfile.$$ がたまりまくってディスク領域不足になると思いますが……。 csh では、$$のところはプロセス番号でおきかわります。
お礼
ありがとうございます
- Miki3548
- ベストアンサー率24% (22/89)
こんにちは。 #1です。 先ほどは 質問内容とずれた回答をしてしまい 失礼致しました。 >MAX_FILE_SIZEを表示させるためには echo $MAX_FILE_SIZE; で表示されませんか? 「$オブジェクトname」で 値を取り出せると思います。
お礼
このアップロードされたファイルは /tmp/ に名前が改名されて格納されますがx.phpを表示した後すぐに消え去るみたいです このファイルを消えないようにするにはどうしたらいいのでしょうか?
補足
ありがとうございます x.html: <FORM ENCTYPE="multipart/form-data" ACTION="x.php" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Send this file: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Send File"> </FORM> x.php: <?php echo $_FILES['userfile']['name']; echo $_FILES['userfile']['size']; echo $MAX_FILE_SIZE; ?> としましたがエラーはでないものの$MAX_FILE_SIZEが表示されません 別の変数に格納されるのでしょうか?
- Miki3548
- ベストアンサー率24% (22/89)
こんにちは。 >ACTION="_URL_" これって _URL_ に サブミット先の URLを代入しなさいと言うことじゃないですか? たとえば ACTION="test.html"とか・・・。 何のプログラム言語を使われてるのか分からないので これは ちょっと自信無しです。 >ファイルを入力してサブミットすればどういうことがおきるのでしょうか? ACTIONで指定したURLに画面がジャンプし hidden で 設定した MAX_FILE_SIZE = 1000 という値と fileで設定した userfile = 入力した値が ジャンプした画面に送信されます。 その値は HTMLだけでは使う(取り出す) ことができないので たとえば、ASPとかPHP言語で プログラミングすることにより その値が使える(取り出せる)ようになります。 参考になりますでしょうか?
補足
ありがとうございます 例えば <FORM ENCTYPE="multipart/form-data" ACTION="x.html" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Send this file: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Send File"> </FORM> とした場合に x.html: <?php echo 'max value='.$xxx; echo 'file name='.$yyy; ?> においてxxxとyyyに適当な文字を代入すれば入力したファイル名が表示されるのでしょうか? そうだとすればxxxとyyyは何を代入するべきでしょうか? そうでないならばどうすれば表示できるのでしょうか? x.htmlは質問のhtmlファイルがあった場所ですね?
補足
ありがとうございます x.html: <FORM ENCTYPE="multipart/form-data" ACTION="x.dhd" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Send this file: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Send File"> </FORM> x.php: <?php echo $_FILES['userfile']['name']; echo $_FILES['userfile']['size']; ?> で動きましたが MAX_FILE_SIZEを表示させるためにはどうしたらいいのでしょうか?