2010-10-05 68 views
0

我有一个脚本运行在一个临时站点上,它需要上传的图像,创建一个目录(如果存在)并将图像上传到所述目录。使用chmodDirectory创建目录的问题

我想改变创建到活网站的目录,没有运气。非常确定的是,这块代码仍在寻找分段URL而不是直播。

function chmodDirectory($path = '.', $level = 0){ 
$ignore = array('cgi-bin', '.', '..'); 

$dh = @opendir($path); 


while(false !== ($file = readdir($dh))){ // Loop through the directory 
    if(!in_array($file, $ignore)){ 
    if(is_dir("$path/$file")){ 
     chmod("$path/$file",0777); 
     chmodDirectory("$path/$file", ($level+1)); 
    } else { 
     chmod("$path/$file",0777); // desired permission settings 
    }//elseif 

    }//if in array 

}//while 

closedir($dh); 

} //功能

?> 提前感谢您的帮助!

编辑:问题在于即使我已经改变了路径和数据库存储正确的URL,我希望被创建或访问的目录仍然在临时目录上创建/访问。

+0

你没有描述什么出了问题,预期的结果是什么,你得到什么错误...... – 2010-10-05 18:03:43

+0

我已经编辑它。只是再次澄清。它正在站点的暂存部分创建目录,我不确定它在哪里获取$ path以及如何将其设置为我所需的目录。 – 2010-10-05 18:13:49

+1

删除'opendir'前面的'@',看看它是否可以打开'$ path' .... – Wrikken 2010-10-05 18:27:11

回答

0

PHP中的文件相关命令都是“当前工作目录”。你开始chmodDirectory().作为路径,这意味着“当前工作目录”,这是默认的脚本存在的目录。

如果您正在运行暂存站点作为“活的“网站,没有办法让这个功能成为实时目录的一部分,因为你要离开相关的''。目录,只有深入挖掘。例如,如果你的脚本是:

/home/sites/example.com/htdocs/staging/v1.1/upload.php 

再处理的第一个目录将是

/home/sites/example.com/htdocs/staging/v1.1/ 

如果你想启动过程中的“活”区,你必须调用与始发路径的功能:

或更好:

chmodDirectory('/home/sites/example.com/htdocs/'); // start at this absolute path 

作为路径,所以它将在“活”版本中工作,而不是在暂存区域内开始。

0

嘿,伙计们,感谢您的帮助......错误实际上是从php.ini设置中的open_basedir发生的。我无法写一个目录,因为我在一个子域目录下。