【问题标题】:mkdir - create a subdirectory with specific name [closed]mkdir - 创建具有特定名称的子目录 [关闭]
【发布时间】:2023-10-28 22:59:01
【问题描述】:

在这里和谷歌搜索了几个小时后,我决定寻求帮助。 我希望发布的代码在目录uploads 中创建一个子目录,由变量$userDir 命名。它不会在php error logs 中给出任何错误,但它也不会创建子目录。

代码:

    <?php

    $userDir = $_POST['user_dir'];
    $targetFolder = '/uploads';
    if (!file_exists($targetFolder.'/'.$userDir)) {
   mkdir($targetFolder.'/'.$userDir, 0700, true);  
}
   //* Some other code here
    ?>

有谁知道它为什么不创建文件夹?

【问题讨论】:

  • 错误对我来说似乎很清楚
  • 很高兴您能看到错误。 :) 请分享一下好吗?
  • “警告此函数对由于安全模式限制而无法访问的文件返回 FALSE。但是,如果这些文件位于 safe_mode_include_dir 中,它们仍然可以被包含。”。这是你的情况吗?
  • 这不是我的情况,但感谢您的帮助。 :)

标签: php forms file-upload mkdir


【解决方案1】:

那么该文件夹可能已经存在 - 但不是您认为的位置。

尝试将您的 mkdir 行替换为:

if (!file_exists(getcwd().$targetFolder.'/'.$userDir)) {
   mkdir(getcwd().$targetFolder.'/'.$userDir, 0700, true);  
}

更正你的目标路径:

 $targetPath = $_SERVER['DOCUMENT_ROOT'].$targetFolder.'/'.$userDir;

【讨论】:

  • 它没有给我任何错误,也没有创建子文件夹。
  • 只是把图片放到主目录uploads.
  • 你没有将用户目录添加到目标文件夹中。
  • 修改了我之前的答案 - 检查你的路径
  • 我做到了。 Indeed 正在创建一个子目录,但不在/uploads 中。它在我的配置脚本所在的位置创建它。我刚刚将您的答案修改为:if (!file_exists($_SERVER['DOCUMENT_ROOT'].$targetFolder.'/'.$userDir)) { mkdir($_SERVER['DOCUMENT_ROOT'].$targetFolder.'/'.$userDir, 0700, true); }