0

几天来我一直在苦苦挣扎,试图找出为什么我无法将文件(move_uploaded_file)从临时目录移动到我设置的目录(/img/uploads/photos)。

经过大量测试和挠头后,我决定将上传函数中发生的任何事情写入 CakePHP 的 CakeLog。

虽然我已经物理创建了:/img/uploads/photos,但当我使用CakeLog::write('debug', 'Does directory exist?: '.json_encode(file_exists('/img/uploads/photos/')));它时会记录false。或者is_dir,也返回false

为什么会这样……谁能帮帮我!

4

4 回答 4

2

我怀疑你做了一个目录/img/uploads/photos/?它可能与您的其他文件在同一个目录中,/var/www/yoursite/img/uploads/photos/或者类似的地方。

您可以使用一些技巧$_SERVER{'DOCUMENT_ROOT'},如您可以在http://php.net/manual/en/function.file-exists.php看到的

于 2012-06-24T14:47:38.673 回答
1

/img/uploads/photos/当你说你已经创建了目录时,我不相信你。这是一条绝对路径,从机器的根开始计算。您更有可能在某处(例如/var/www/img/uploads/photos//home/caboone/public_html/img/uploads/photos/)的 web 目录中创建了该文件夹。

于 2012-06-24T14:47:27.510 回答
0

路径/img/...意味着路径是相对于磁盘根目录img的,即它表示硬盘最顶层的目录。我怀疑那是目录所在的位置。不要以 a 开始路径/以使其相对于您正在使用的文件。文件路径不是 URL!

于 2012-06-24T14:49:13.913 回答
0
  1. 将文件从一个目录移动到另一个目录时使用绝对路径。用于dirname(__FILE__)获取绝对当前工作目录,然后添加路径的其余部分。
  2. 按照@Alex 的建议,为目录设置适当的权限。使用chmod()并将权限设置为 777 (ugo+w) [user+group+others world-writeable]。
于 2012-06-24T14:50:10.940 回答