我读过PHP's website file_put_contents
不是原子的。我打算用它来上传文件。
我当时想知道move_uploaded_file
的原子性,但找不到任何信息。
任何帮助?
感谢。
答案 0 :(得分:3)
我假设你在文件系统级别意味着原子。它取决于你的文件系统。
move_uploaded_files
发生的过程基本上是:
open_basedir
是否允许写入目的地?假设所有这些都返回yes,则尝试rename
。在大多数文件系统上,重命名是原子的。
如果rename
失败,则尝试复制和删除。这不是原子的,因为复制需要阅读,然后有一个单独的删除。
最后,如果重命名和副本都不起作用,则会生成错误。