2

我正在创建一个目录,但我收到了错误

警告:chmod() [function.chmod]:第 104 行的 /home/www/public_html/console/pubs-add.php 中没有这样的文件或目录

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

我尝试了许多设置路径的变体,例如 ../images/gallery 或 home/www 但似乎没有任何效果

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
}
4

4 回答 4

3

您的mkdir命令只是使用$dir,它只是 'a1234' (在当前工作目录中)。这将失败(也会失败chmod)。

解决方案:您可能想在 $dir 前面加上 PATH ...

于 2012-04-28T18:58:38.453 回答
2

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

于 2012-04-28T18:59:51.073 回答
2

亲爱的 chmod() 会造成一些时间问题。所以我会建议你使用这个 mkdir("/path/to/my/dir", 0700); 如果你希望创建的目录应该准备好并且可写,那么使用这个 mkdir("/path/to/my/dir", 0777);

于 2012-04-28T19:02:18.933 回答
2

问题是您无法对尚未创建的文件进行 chmod。出于这个原因,我改变了这条线

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

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

提示:如果您希望文件夹可写,请将其更改为 755 而不是 777。777 用于文件。

于 2012-04-28T19:04:06.107 回答