Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
ファイルアップロードができません。 - PHPプロ!Q&A掲示板
[go: Go Back, main page]

<< 半角カナチェックについて 質問一覧 pearコマンドを発行すると、アクセス... >>

  • 募集中!! 0P
ファイルアップロードができません。

phpとApacheを利用して、ファイルのアップロードしたいのですが以下のようなエラーが出て上手くいきません。
エラー文
Warning: move_uploaded_file(C:\Program File\Apache Group\Apache2\htdocs\image\200708090925000.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\view.php on line 12

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\Temp\php11.tmp' to 'C:\Program File\Apache Group\Apache2\htdocs\image\200708090925000.jpg' in C:\Program Files\Apache Group\Apache2\htdocs\view.php on line 12
正常にアップロード処理されませんでした。

php.iniの設定はfile_upload=On upload_tmp_dir=NULL upload_max_size=2M です。
phpinfo()で確認したところ、upload_tmp_dirがno valueになっているのですが、設定が反映されていないのでしょうか?

参考までに作成したプログラムを載せておきます。

<HTML>
<HEAD>
<TITLE>PHPのテキスト</TITLE>
</HEAD>
<BODY>
<?php
$file_dir = 'C:\Program File\Apache
Group\Apache2\htdocs\image\\';
$file_path = $file_dir.$_FILES["uploadfile"]["name"];

if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"],
$file_path)){

$img_dir ="/image/";
$img_path = $img_dir.$_FILES["uploadfile"]["name"];
$size  = getimagesize($file_path);
?>

ファイルアップロードを完了しました。<BR>

<IMG src="<?=$img_path?>"<?=$size[3]?>><BR>
<B><?=mb_convert_encoding($_POST["comment"],
"EUC-JP","SJIS")?></B><BR>
<?php
}else{
?>

正常にアップロード処理されませんでした。<BR>

<?php
}
?>
</BODY>
</HTML>

原因が分かる方、ご意見よろしくお願いいたします。
Qファイルアップロードができません。 i1739027  [09月29日 22時47分] NEW!
┗Re:ファイルアップロードができません。 tezcello  [09月29日 23時54分] NEW!
  ┣Re:Re:ファイルアップロードができません。 i1739027  [09月30日 02時48分] NEW!
  ┃┗Re:Re:Re:ファイルアップロードができません。 tezcello  [09月30日 08時43分] NEW!
  ┃  ┗Re:Re:Re:Re:ファイルアップロードができません。 i1739027  [09月30日 10時30分] NEW!
  ┗Re:Re:ファイルアップロードができません。 kaitau  [09月30日 10時55分] NEW!

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

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

> upload_tmp_dirがno valueになっている
この場合、アップロードされる先はシステムのテンポラリディレクトリのはずですが、
C:\Program File\Apache Group\Apache2\htdocs\image\
に保存されているようなメッセージですねぇ...

ちなみに、そのディレクトリは、PHPから書き込む為のパーミッションはありますか?
(Win はそのあたり気にするのかどうかは不明ですが)
php.ini の upload_tmp_dirがno value を別の値に書き換えてみては如何でしょうか?

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

すみません、初心者なのでパーミッションについてよくわかりません。

upload_tmp_dirはNULLに書き換えたのですがphpinfo()では反映されていないようです。

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

「書き込みをする為の許可」というつもりで「パーミッション」と書きました。
例えば、そのフォルダが読み込み専用になっていると書き込めませんよね?

試しに、PHPからそのフォルダにファイルを作ってみたらどうでしょう。
  1. $res = touch('C:\Program File\Apache Group\Apache2\htdocs\image\test.txt');
Win & PHP の環境が無いので、パスの記述があっているのか分かりませんが。

> upload_tmp_dirはNULLに書き換えたのですがphpinfo()では反映されていないようです。 
NULL は「何も無い」という事なので、no value と同じことでは?

これも試すのなら、Cドライブに tmp というフォルダを作って(書き込み可能か確認して)おいて
upload_tmp_dir = "C:\tmp"
と指定してみてはどうでしょうか?

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

tmpをCドライブにつくって"C:\tmp"としてApacheを再起動してみましたが、phpinfo()では反映されていません。ちなみに権利関係を確認してみましたが、読み取り専用のチェックボックスにチェックではなくて緑の□が入っているのは、書き込みも可能ということですよね?

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

> この場合、アップロードされる先はシステムのテンポラリディレクトリのはずですが、
> C:\Program File\Apache Group\Apache2\htdocs\image\
> に保存されているようなメッセージですねぇ...

元が

  1. Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\Temp\php11.tmp' to 'C:\Program File\Apache Group\Apache2\htdocs\image\200708090925000.jpg' in C:\Program Files\Apache Group\Apache2\htdocs\view.php on line 12
なので、
アップロード直後は
C:\WINDOWS\Temp\php11.tmp
に入っているはずですよ。ここは無理に変えなくてよいかと。
(初心者さんなら混乱するだけのようですし。)
問題なのは、
C:\WINDOWS\Temp\~.tmp からC:\Program File\Apache Group\Apache2\htdocs\image\~.jpg
への移動が失敗している点では無いでしょうか。

まぁ、初心者さんが設定しているWindowsOSのapacheなら、
フォルダ C:\Program File\Apache Group\Apache2\htdocs\image\ が実際には無いくらいの
理由しかすぐには思いつきませんが。
半角カナチェックについて 質問一覧 pearコマンドを発行すると、アクセス...