我对简单的PHP脚本有一种奇怪的行为。
当我尝试在move_uploaded_file
之后重命名文件(与复制相同的行为)时,它会失败,因为该文件不是新文件夹(而move_uploaded_file
返回true
)
但是,如果在move_uploaded_file
之后等待2 3秒,则重命名工作正常。
此代码失败:
$result = move_uploaded_file($temp_name, 'new_folder/'.$filename);
echo $result; //=> True
$result = rename('new_folder/'.$filename, 'new_new_folder/'.$filename);
echo $result; //=> False
此代码工作:
$result = move_uploaded_file($temp_name, 'new_folder/'.$filename);
echo $result; //=> True
sleep(3);
$result = rename('new_folder/'.$filename, 'new_new_folder/'.$filename);
echo $result; //=> True
我尝试在调用重命名之前列出new_folder的文件,在第一种情况下,它不返回文件,在第二种情况下,列出文件。
那里会发生什么?
我使用PHP-FPM和xcache。 (禁用xcache没有变化)
答案 0 :(得分:1)
代码:
if(move_uploaded_file($temp_name, 'new_folder/'.$filename)) {
echo $filename;
$result = rename('new_folder/'.$filename, 'new_new_folder/'.$filename);
echo $filename;
echo $result;
//=> True
}