我正在尝试使用PHP rename()
900 KiB PDF文件。由于某种原因,重命名它需要很长时间。我认为应该是即时的。
这是在CentOS服务器上。在重命名文件时,我可以获取属性,似乎rename()
正在复制并用新的重命名文件替换旧文件。
旧名称和新名称路径位于同一目录中。
以前有人偶然发现了这个问题吗?
<小时/>
//If exists change name and then return path
$pieces = explode("@", $filename);
$newName = $pieces[0].' '.$pieces[2];
rename($uidPath.$filename, $uidPath.$newName);
if (preg_match('/pdf/', $pieces[2]))
{
$result['status'] = '1';
$result['path'] = 'path to file';
}
else
{
$result['status'] = '1';
$result['path'] = 'path to file';
}
答案 0 :(得分:3)
由于某些原因,PHP在fclose()
上释放文件锁的速度非常慢,因此如果您在移动文件之前写入文件,则可能需要等待一段时间。我有一个低优先级后台工作的问题,所以我没有真正研究为什么会发生这种情况或我能做些什么来阻止它 - 我只是在fclose()
和{{1}之间增加了1秒睡眠}}