0

使用opendir(). 我收到以下警告:

PHP 警告:opendir(/uploads/users/405/images/profile/profilepic/) [function.opendir]: failed to open 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 回答