0

関数を使用して PHP を使用して画像をアップロードしようとしていますmove_uploaded_file()

PHP

// Get image variables
$file = $_FILES['image']['tmp_name'];
$path = "images/products/large/";
$image_hash = "ty1bi"; // This would be generated

//I have also tried this: $path = "home/the_user/public_html/images/products/large/";
//$_SERVER['DOCUMENT_ROOT'] is equal to home/root_user/public_html/

// Upload image
if(!move_uploaded_file($file, $path . $image_hash . ".jpg")) {      
  header("location:admin/add.php?e=1");
  exit;
}

現時点では、私は得ています:

警告: move_uploaded_file(home/root_user/public_html/images/products/large/ty1bi.jpg) [function.move-uploaded-file]: ストリームを開くことができませんでした: /home/root_user/public_html/includes/ にそのようなファイルまたはディレクトリはありませんfunctions.php の 63 行目

警告: move_uploaded_file() [function.move-uploaded-file]: '/tmp/phpJSKsYA' を /home/root_user/public_html/ の 'home/root_user/public_html/images/products/large/ty1bi.jpg' に移動できませんincludes/functions.php の 63 行目

ホスティング アカウントは WHM でセットアップされ、/~the_user/ディレクトリ経由でサイトにアクセスしています。したがって、サイト名は、メイン/ルート ホスト ドメイン名またはサーバー IP アドレスのいずれかで、その後に/~the_user.

エラーは/root_user、WHM ホストのユーザー名となる を示しているため、 にアクセスできないと思います/~the_user。ドキュメントのルートを変更しようとした$pathので、それはから始まりhome/、含まれています/the_userが、運もありません。

これを行う方法はありますか、またはドメイン名でこれを使用/テストする必要がありますか?

アップデート

ドキュメント ルートはルート ユーザー名の下にあったため、発生していた問題は絶対パスの正しいビルドでした。パスを作成することで正しい方向に進んでいましたが、パス文字列の先頭にスラッシュがないため、これは絶対的なものでした。

このコード行は問題の修正に役立ちました:

$path = "/home/the_user/public_html/images/products/large/";

4

1 に答える 1

1

エラーが「home/...先頭に/がない」という事実について疑問に思います。それを取り除いて、CWDの下のhome/...というサブディレクトリにファイルを配置する必要があるとPHPに思わせるセキュリティ設定である可能性があります。

試す

/home/.....
^---

代わりは

于 2013-03-08T21:41:01.020 に答える