0

を使用しているときにファイルパスに問題がありopendir()ます。次の警告が表示されます。

PHP 警告: opendir(/uploads/users/405/images/profile/profilepic/) [function.opendir]: dir を開けませんでした: No such file or directory in /home/my_folder/public_html/models/photos.php on line 1059

の 1059 行にphotos.phpは次の内容があります。

if ( ( $handle = opendir( $profile_pic_path ) ) ) { // do stuff }

どこ:

$profile_pic_path = '/uploads/users/405/images/profile/profilepic/';

いくつかの異なることを試しましたが、動作しません (エラー ログに PHP の警告メッセージが表示され続けます)。

私は何を間違っていますか?

4

1 に答える 1

2

/パスの先頭にある は、絶対パスを意味します。

絶対パスまたは相対パスを使用する必要があります。

$profile_pic_path = dirname(__FILE__).'/uploads/users/405/images/profile/profilepic/';

また

$profile_pic_path = 'uploads/users/405/images/profile/profilepic/';

これは、スクリプトがアップロードディレクトリと同じディレクトリにある場合に機能します。

スクリプトがサブディレクトリ (lib/tests/test.php など) にあり、グローバルな $basepath が初期化されていない場合:

$profile_pic_path = dirname(dirname(dirname(__FILE__)))
                    .'/uploads/users/405/images/profile/profilepic/';

多くの場合、ここのロジックのどこかでグローバルまたは定数の basedir が使用されます (config/main.php など):

global $basedir=dirname(dirname((__FILE__));
于 2012-11-04T02:07:52.837 に答える