【问题标题】:PHP mkdir(); not workingPHP mkdir();不工作
【发布时间】:2017-07-30 03:44:29
【问题描述】:

我一直在尝试 Mkdir 函数,该函数在我正在处理的项目中很有用。我尝试了最简单的代码,但无法创建我想要的文件夹。

我尝试更改我的文件夹权限,但这并没有改变(Nor 755 或 777)并且代码不断返回失败。

请看我的代码:

<?php 
if(!mkdir($_SERVER['DOCUMENT_ROOT'].'/uploads/2017', 0777, true))
    {
        echo("echec");
    }
chmod($_SERVER['DOCUMENT_ROOT'].'/uploads/2017', 0777);
?>

父文件夹为“admin”,权限设置为755。

你知道为什么这不起作用吗?

编辑:我重新制作它并且它有效,不知道问题是什么。

【问题讨论】:

  • 尝试mkdir('2017'或文件夹的绝对路径
  • mkdir('/2017') 在文件系统的根目录中创建文件夹(其中/etc /usr 和其他东西)。显然您的用户没有足够的权限。
  • 您的网络服务器可能没有在您想要实现的目标的正确权限组中运行。
  • @Scuzzy 有什么办法可以改变吗?
  • 你可以尝试使用system()函数来制作目录

标签: php directory mkdir


【解决方案1】:

代码

mkdir('/2017', 0777, true)

创建文件夹2017 是文件系统的根文件夹。

始终设置文件夹的完整路径,例如:

mkdir($_SERVER['DOCUMENT_ROOT'] . '/2017', 0777, true);
// or
mkdir('/var/www/mysite/2017', 0777, true);

或使用... 来定义正确的位置:

// folder will be created in a same directory 
// as a script which executes this code
mkdir('./2017', 0777, true);

// folder will be created in a directory up one level
// than a script which executes this code
mkdir('../2017', 0777, true);

所以,在你的情况下,显然是:

mkdir($_SERVER['DOCUMENT_ROOT'] . '/admin/2017', 0777, true);

【讨论】:

  • 用新代码编辑你的问题,回显你传递给mkdir的路径。
  • 只是为了这本书。确保第二个参数是0777 而不是'0777'。必须是整数而不是字符串。
【解决方案2】:

示例 #1 mkdir() 示例

<?php
mkdir("/path/to/my/dir", 0700);
?>

【讨论】:

  • 然后呢? /2017 不是 path-to-dir
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 2012-09-16
  • 2015-09-24
  • 2011-03-07
  • 2013-09-19
  • 2013-06-21
相关资源
最近更新 更多