1
我有一個奇怪的行爲,使用簡單的PHP腳本。必須等待3秒才能將文件重命名後copy或move_uploaded_file
當我嘗試後move_uploaded_file
(與複製相同的行爲)的文件重命名,它失敗,因爲該文件不是爲新的文件夾(而,move_uploaded_file
回報true
) ,但如果等待2 OU後3秒move_uploaded_file
,重命名工作正常。
此代碼失敗:
$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禁用無變化)
什麼是文件的大小? –
至少1MB。事實上,它不會發生在較小的文件。 –
它與move_uploaded_file的行爲有關。在文件完全移動之前解析下一個代碼。 –