【问题标题】:Unsure why mkdir function isn't working?不确定为什么 mkdir 功能不起作用?
【发布时间】:2013-07-22 20:25:28
【问题描述】:

所以我有 localhost,我正在 codeigniter 上构建我的网络应用程序。我将其作为创建目录的功能的一部分:

mkdir(base_url() . 'assets/img/' . $_POST['cells']['slug'] . '/');

它应该创建目录:

http://localhost/sitedirectory/assets/img/slug/

我不知道为什么这不起作用。

【问题讨论】:

  • 文件系统调用如 mkdir() 应该使用文件系统引用,而不是 url 引用

标签: php codeigniter directory mkdir


【解决方案1】:

base_url 将是一个 HTTP URL。您不能在 HTTP URL 上创建目录,您必须在文件系统上创建它们。 (然后您的 Web 服务器可以将目录映射到 HTTP URL)

【讨论】:

  • 啊,所以只要 localhost/sitedirectory/assets/img/slug/ 就可以了吗?
  • 当前工作目录不太可能包含名为“localhost”的子目录。你需要做一些适合你的文件系统的目录结构的事情。
  • 啊,抱歉,我不太了解目录和文件系统的工作原理。如果我理解正确,getcwd() 返回 /sitedirectory/,所以我必须从那里构建字符串 - 所以我只需要调用 mkdir('/assets/img/slug/)?
  • 如果您以/ 开头,那么您将返回到文件系统根目录。
【解决方案2】:

你想做的是这样的:

mkdir(APPPATH . 'assets/img/' . $_POST['cells']['slug'] . '/');

这里有一些其他的可能性

// System Directory Path
SYSDIR

// Application Directory Path
APPPATH

还可以看看 Path Helper!

【讨论】:

    【解决方案3】:

    代替

    mkdir(base_url() . 'assets/img/' . $_POST['cells']['slug'] . '/');
    

    你必须使用:-

    mkdir($_SERVER['DOCUMENT_ROOT'] . 'FOlder_Name/assets/img/' . $_POST['cells']['slug'] . '/');
    

    并确保您要创建目录的位置,其权限应为“777”。

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 2015-10-09
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      相关资源
      最近更新 更多