• 締切済み

ファイルがアップロードできません。。。

以下のコードでファイルをアップロードしようと思っているのですが、$_FILESに一次格納できていないようでエラーと表示されてしまいます。 コードは抜粋です。 【○○.php】 <form action="△△.php?id=<?php print( $_REQUEST["id"] ); ?>" method="post" enctype="multipart/form-data"> <input type="file" name="upimage" > </form> 【△△.php】 <?php if ( empty ( $_FILES['upimage'] ) ){ print ( "エラー" ); exit; } ?> ⇒実行するとエラーと表示されてしまいます。 補足事項は以下の通りです。 ・$_REQUEST["id"]にはデータベースから取得した番号が入っていて、情報を引き継げるようにしています。 ・サーバーはお名前.comの共有SD(レンタルサーバー)を使っています。 ・アップロードしようとしているファイルはjpg、サイズは100Kほどです。 ・php.iniの情報  file_uploads = on  upload_tmp_dir = no value max_file_uploads = 20 upload_max_filesize = 2M お分かりになる方いらっしゃいましたら、ご教示ください。。。 よろしくお願いいたします。

みんなの回答

noname#244856
noname#244856
回答No.3

submitボタンが見当たらないんですけど送信はどうしてるんでしょうか。

n-u-be-positive
質問者

補足

回答ありがとうございます。 問題点は別途解決させたいと思います。 submitボタンはすぐ下に用意してあります。 <form action="△△.php?id=<?php print( $_REQUEST["id"] ); ?>" method="post" enctype="multipart/form-data"> <input type="file" name="upfiles" > <input type="submit" value="ファイルを追加"> </form> いただいたリンクの 「見直し版 アップロード例外処理サンプル」 を受取側のphpに記述して実行してみましたが 「送信されたファイルはありません」 が表示されてしまいました。。。

noname#244856
noname#244856
回答No.2

失礼しました。enctype属性ついてますね。

noname#244856
noname#244856
回答No.1

最初に原因を述べておくと、form要素のenctype属性でmultipart/form-dataを指定していないのが原因です。 それに加え、既存のコードにはまだ問題点があります。 <form action="△△.php?id=<?php print( $_REQUEST["id"] ); ?>" この行は ・XSS脆弱性 ・E_NOTICE発生の可能性 2つのリスクを抱えています。 以下のリンクを参照してください。 htmlspecialchars関数に関して(第3引数まで指定することを強く推奨) http://php.net/manual/ja/function.htmlspecialchars.php http://www.tokumaru.org/d/20090930.html $_GET, $_POSTの受け取りに関して http://qiita.com/mpyw/items/2f9955db1c02eeef43ea http://qiita.com/mpyw/items/c39b9ee695a5c2e74627 アップロード処理に関して http://qiita.com/mpyw/items/939964377766a54d4682 http://qiita.com/mpyw/items/73ee77a9535cc65eff1e

関連するQ&A