我一直在苦苦寻找几天试图找出如何将文件(move_uploaded_file
)从temp移动到我设置的目录(/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
为什么会发生这种情况......任何人都可以帮助我!
答案 0 :(得分:2)
我怀疑你是否制作了目录/img/uploads/photos/
?它可能与您的其他文件位于同一个目录中,例如/var/www/yoursite/img/uploads/photos/
或类似的位置。
您可以使用$_SERVER{'DOCUMENT_ROOT'}
之类的一些技巧,因为您可以在http://php.net/manual/en/function.file-exists.php看到
答案 1 :(得分:1)
当你说你创建了/img/uploads/photos/
目录时,我不相信你。这是一个绝对的路径,从机器的根算起。您更有可能在某个位置的web目录中创建了该文件夹(例如/var/www/img/uploads/photos/
或/home/caboone/public_html/img/uploads/photos/
)。
答案 2 :(得分:0)
路径/img/...
表示路径相对于磁盘根目录,即它表示硬盘最顶层的img
目录。我怀疑这是目录的位置。不要使用/
启动路径以使其相对于您正在使用的文件。文件路径不是URL!
答案 3 :(得分:0)
dirname(__FILE__)
获取绝对当前工作目录,然后添加
其余的路径。chmod()
和
设置权限777(ugo + w)[用户+组+其他世界可写]。