• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルのアップロードができない)

ファイルアップロードができない

このQ&Aのポイント
  • CentOS+PHP 5.1.6+Apache2を利用しています。http://www.stackasterisk.jp/tech/php/php02_07.jspをコピーしてi18n_http_output('SJIS');を削除し、改行コードLFで配置したのですが、何度ファイル送信をしようとしてもフォーム画面が出直すだけで、実際ファイルの保存もされていません。
  • 一度フォーム画面を出したままにしてifとelseを消してファイル送信するとファイル名 = ファイルサイズ = バイトファイルタイプ = テンポラリファイルパス = アップロードできません。と表示されます。tempnam('/dat','upload_');のパスも作ってあるのですが、もし無かったとしてもファイル名とかは出るはずなので、やはり不思議としか言い様がありません。
  • safeモードとかでもなく、一部のphpではファイルアップロードできているような事も聞いていますが、これも含め数種アップローダを設置してみたのですができるものとできないものがあるようです。動いたもの:http://www.k-php.com/script/uploda/index.html理由とか対処方法わかる方いらっしゃいましたら、ご教授願います

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

見たところ、けっこう古い書き方をしたソースコードですね。送信されたフォームのデータを直接グローバル変数名として指定し値を取得しているようです。例えば、 <input type="file" name="UserFile">  ↓ $UserFile というようにです。これは、以前はデフォルトで設定されていましたが、今は問題が大きいため初期状態では使われないようになっているはずです。$UserFile_name、$UserFile_sizeなども同様です。 従って値の取得は、$UserFileではなく、$_POST['UserFile']のようにする必要があります。また$UserFile_nameなどのアップロードファイルの情報も、$_FILES['UserFile']['name']など$FILESから取得する必要があります。すべてのグローバル変数をこのような形で書き換えてみてください。

関連するQ&A