我正在编写一个接受product_id和$ _FILES数组的类,因为它是构造函数。该类保存这些变量并使用它们创建一个由product_id命名的新目录,并尝试将临时文件复制到指定的目录。
出于某种原因,我的课程甚至没有创建目录(这应该在构造函数中发生)
以下是我的代码的链接:http://pastie.org/955454
答案 0 :(得分:2)
这可能是权限问题。你说它是基于Windows的服务器吗?你拥有这台机器吗?你在使用专用服务器吗?您使用的是共享服务器吗?
这个问题的答案实际上取决于那些人给出的信息。如果您拥有该计算机,则只需转到硬盘上您想要写入的目录并打开其写入的权限即可。如果它是专用的,那么可能有一种相当简单的方法来访问文件结构并在那里更改其权限设置。如果它是共享的,同样的事情。
答案 1 :(得分:0)
看起来您在构造函数中的$ this->目录中使用了绝对路径,换句话说,它将被视为C:\ images \ upload(或者您正在运行的任何驱动器)网站来自)。如果您认为这是一个URI类型路径,那么您需要将您的webroot添加到路径中:
$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id
您可能还想查看mkdir()返回的内容。失败后会出现错误,之后您可以检查error_get_last()
(PHP> = 5.2)以确切了解它失败的原因。
} else {
$ret = mkdir($this->directory, 0755, true);
if ($ret === FALSE) {
die("mkdir() failed with: " . error_get_last());
}
}