【问题标题】:PHP Image Upload object won't create directory on windowsPHP Image Upload 对象不会在 Windows 上创建目录
【发布时间】:2010-05-11 15:09:34
【问题描述】:

我正在编写一个接受 product_id 和 $_FILES 数组作为其构造函数的类。该类保存这些变量并使用它们创建一个名为 product_id 的新目录,并尝试将临时文件复制到我指定的目录。

由于某种原因,我的课程甚至没有达到创建目录的程度(这应该在构造函数中发生)

这是我的代码的链接:http://pastie.org/955454

【问题讨论】:

  • ID 是什么样的,即$prod_id
  • $prod_id,是的;并且 mkdir 返回 0

标签: php upload image-upload


【解决方案1】:

这可能是权限问题。你说它是基于 Windows 的服务器?你拥有这台机器吗?您是否使用专用服务器?您使用的是共享服务器吗?

这个问题的答案真的取决于这些人提供的信息。如果您拥有这台机器,您只需转到硬盘上您希望可写的目录并打开其写入权限即可。如果它是专用的,那么可能有一种相当简单的方法可以访问文件结构并在那里更改其权限设置。如果它是共享的,同样的事情。

【讨论】:

  • 我试试看,我在本地主机上
  • 我尝试取消选中只读,但是当我重新打开文件夹属性时它一直在恢复。
  • 尝试更改管理员帐户中的属性。如果您的帐户已被视为令牌“管理员帐户”(在 Windows 上,这并不一定意味着您拥有无限访问权限),请尝试此页面上的步骤:howtogeek.com/howto/windows-vista/…
【解决方案2】:

您似乎在构造函数的 $this-> 目录中使用了绝对路径,换句话说,它将被视为 C:\images\upload (或您正在运行该站点的任何驱动器从)。如果您的意思是这是一个 URI 类型的路径,那么您需要将您的 webroot 添加到该路径:

$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id

您可能还想检查 mkdir() 返回的内容。失败时为 FALSE,之后您可以检查 error_get_last() (PHP >= 5.2) 以了解失败的确切原因。

} else {
     $ret = mkdir($this->directory, 0755, true);
     if ($ret === FALSE) {
        die("mkdir() failed with: " . error_get_last());
     }
}

【讨论】:

    猜你喜欢
    • 2018-07-05
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 2019-05-26
    • 2020-11-16
    • 1970-01-01
    相关资源
    最近更新 更多