dポイントプレゼントキャンペーン実施中!

のですが例えば

<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>

においてファイルを入力してサブミットすればどういうことがおきるのでしょうか?

A 回答 (4件)

恐らくPHPスクリプトのスキンファイルについての質問だろうと推測します。


(この場合PHPのカテゴリに書くことが正しいのですが…)

#1の補足欄にかかれている内容に対する回答ですが、
$xxxや$yyyに適当な文字を代入した場合、
代入した文字が表示されてしまいますよね。

ファイル名を表示したい場合は
すでにフォームから受け取っているであろう値を
もらってこなければなりません。

フォームから渡されたファイルの名前は「$_FILES[要素名]['name']に入っています。
今回の場合、ファイル名が入ったフォーム要素は
「userfile」と言う名前が付けられているので

x.htmlの先頭で
「$yyy = $_FILES['userfile']['name']」

とすればファイル名が表示されます。
ですが、ファイルの拡張子が「html」では
PHPとして実行しない場合がほとんどですので、
ファイル名を「x.php」などに変更してくださいね。

参考URL:http://jp.php.net/features.file-upload

この回答への補足

ありがとうございます

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を表示させるためにはどうしたらいいのでしょうか?

補足日時:2004/03/30 13:23
    • good
    • 0

回答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 では、$$のところはプロセス番号でおきかわります。
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2004/03/30 22:25

こんにちは。



#1です。

先ほどは 質問内容とずれた回答をしてしまい
失礼致しました。

>MAX_FILE_SIZEを表示させるためには

echo $MAX_FILE_SIZE;

で表示されませんか?

「$オブジェクトname」で 値を取り出せると思います。

この回答への補足

ありがとうございます

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が表示されません
別の変数に格納されるのでしょうか?

補足日時:2004/03/30 14:12
    • good
    • 0
この回答へのお礼

このアップロードされたファイルは
/tmp/
に名前が改名されて格納されますがx.phpを表示した後すぐに消え去るみたいです
このファイルを消えないようにするにはどうしたらいいのでしょうか?

お礼日時:2004/03/30 14:22

こんにちは。



>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ファイルがあった場所ですね?

補足日時:2004/03/30 11:05
    • good
    • 0

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