如果我用“/”作为前缀,PHP rename()args不起作用

时间:2012-02-14 02:10:17

标签: php apache

这有效:

rename("box/". $picture , "box/tmp/". $picture);

这不是:

rename("/box/". $picture , "/box/tmp/". $picture);

导致找不到文件/目录错误。

这可能看起来很卑鄙,但是我的代码存在问题,而这可能是我的另一个问题的根本原因。

由于

2 个答案:

答案 0 :(得分:1)

rename适用于文件系统路径,并且不是基于DOCUMENT_ROOT,除非您有一个非常奇怪的设置,然后/box(或Windows系统上的c:\box)不是即使它存在,即使它确实存在,除非你不顾自己的方式,网络服务器也没有权限写入它。

你可能想要的更像是这样:

rename($_SERVER['DOCUMENT_ROOT'].'/box/' . $picture, $_SERVER['DOCUMENT_ROOT'].'/box/tmp/' . $picture);

答案 1 :(得分:0)

除非你的文件系统根目录下有一个名为“box”的目录,否则你的第二个例子将无效。前导斜杠意味着“在文件系统的根目录。”