我正在尝试使用PHP的rename
将文件移动到其他文件夹(并在同一步骤中重命名该文件)。但是,rename
始终返回false
。另一方面,使用copy
和unlink
的组合可以正常工作。可能导致这种情况的原因是什么?
相关代码如下所示:
if (!rename($targetpath, $backuppath)) {
// if rename fails, try with copy and delete
if (!copy($targetpath, $backuppath))
die("9\nCould not move existing file to backup");
touch($backuppath, filemtime($targetpath));
if (!unlink($targetpath))
die("9\nCould not move existing file to backup");
}
路径就是例如。
$targetpath: /path/to/plots/some.pdf
$backuppath: /path/to/plots/old/some.pdfX14068815860
答案 0 :(得分:0)
首先检查错误是:
print_r(error_get_last());
你使用的是什么版本的php?在旧版本中,rename
仅在源和目标位于同一文件系统上时才有效。在某些系统上,如果您有该文件的打开文件描述符,rename
也将失败。