- ベストアンサー
ファイルのアップロードが、どうしても どうしても 出来ません・・
■アップロードフォーム用のHTMLファイルです↓ ファイル名=gazou_upload.html <html> <head> <title>ファイルのアップロード</title> </head> <body> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" > <input type="file" name="userfile"><br><br> <input type="submit" value="アップロード"> </body> </html> ■受け取ったファイルをサーバ上のディレクトリに移動するPHPファイルです↓ ファイル名=gazou_upload.php <?php // アップロード先ディレクトリ+ファイル名の指定 $uploaddir = '/image/'; $uploadfile = $uploaddir. $_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); } ?> ■結果 Warning: move_uploaded_file(/image/P1010851.jpg): failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/**********/web/gazou_upload.php on line 8 Warning: move_uploaded_file(): Unable to move '/tmp/phpuqa8g2' to '/image/P1010851.jpg' in /home/sites/lolipop.jp/users/***********/web/gazou_upload.php on line 8 ファイルアップロード失敗 Array ( [userfile] => Array ( [name] => P1010851.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpuqa8g2 [error] => 0 [size] => 84509 ) ) 簡単なプログラムなのにちゃんと動作してくれません。色々試行錯誤試したりしているのですが・・初心者で本当に困ってます。どなたかアドバイスよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ちゃんとできるまで、前の質問を閉じなければ良かったかもしれませんね。 $uploaddir = '/image/'; これではサーバールートからの指定になるので、ディレクトリ指定が間違っているのだと思います。どこにgazou_upload.phpが置かれているか分からないのですが、例えば./image/などですね。 これは厳密にはphpの問題ではないのです。サーバーのディレクトリ指定を勉強してみてください。
その他の回答 (1)
- sapporoSweets
- ベストアンサー率30% (3/10)
$updir = $_SERVER['DOCUMENT_ROOT'].'/image/'; $upfile = $updir. $_FILES['userfile']['name']; if(move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile)) { print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); }
お礼
回答ありがとうございます。おっしゃる通りディレクトリ指定の間違いでした。./image/にしたところ正常に動作しました。初心者なのでもう少し基本的な知識を身につけないとダメですね。もう一度ディレクトリ指定の勉強をしなおします。ありがとうございました。