2012-04-28 120 views
2

我创建一个目录,我得到的错误PHP创建目录

警告命令:chmod()[function.chmod]:在/ home /网络/的public_html /控制台/酒吧相加没有这样的文件或目录.php 104行

运行代码的php文件位于www/console中,我尝试创建的目录位于www/images/gallery中。

我已经尝试设置路径的许多变化,如../images/gallery或家庭/ WWW,但没有seesm工作

define("PATH", "/www/images/gallery"); 

$dir = 'a1234'; 

$targetfilename = PATH . '/' . $dir; 

if (!is_file($dir) && !is_dir($dir)) { 
    mkdir($dir); //create the directory 
    chmod($targetfilename, 0777); //make it writable 
} 
+1

PHP是否可以写入'/ www/images/gallery'? – Ryan 2012-04-28 18:52:03

+1

'mkdir($ dir)'可能返回'false'。在尝试对其中的某个文件进行chmod调试之前,可能需要检查它的返回值。 – Sampson 2012-04-28 18:55:45

+0

是都设置为777 – 2012-04-28 18:58:23

回答

3

mkdir命令只使用$dir,这仅仅是“A1234” (在当前工作目录中)。这将失败(并使chmod也失败)。

解决办法:你可能想用前缀$ PATH DIR ...

+0

是的,我认为这是问题,你会认为正确的道路是什么? – 2012-04-28 19:12:49

+0

谢谢,做了它,我改变了路径../images/gallery – 2012-04-28 19:17:21

2

这使得$dir在当前工作目录,但是,这并不意味着,这等于你$targetfilename。我会说,你必须做mkdir($targetfilename)而不是mkdir($dir)

2

尊敬的chmod()创建一些时间问题。所以我建议你用这个 mkdir(“/ path/to/my/dir”,0700); 如果你想创建的目录应该准备好并且可以使用这个 mkdir(“/ path/to/my/dir”,0777);

2

问题是你不能chmod一个你没有做过的文件。出于这个原因,我已经改了行

$task = chmod($targetfilename, 0777); //make it writable 

$task = chmod($dir, 0755); //make folder writable 

提示:如果你想有一个文件夹可写,文件模式它755,而不是777 777的文件。