0

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

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

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

4

2 回答 2

2

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

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

于 2010-05-11T15:17:23.893 回答
0

看来您在构造函数的 $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());
     }
}
于 2010-05-11T17:10:17.177 回答