在 PHP 原子中move_uploaded_file



我在PHP的网站上读到file_put_contents不是原子的。我打算用它来上传文件。

我当时想知道move_uploaded_file的原子性,但找不到任何信息。

有什么帮助吗?

谢谢。

我假设你的意思是文件系统级别的原子。这取决于您的文件系统。

move_uploaded_files发生的过程基本上是:

  • 文件可以上传吗?
  • 有两根弦传入了吗?
  • 源文件是否已上传?
  • open_basedir是否允许写入目标?

假设所有这些都返回"是",则尝试rename。在大多数文件系统上,重命名是原子的。

如果rename失败,则尝试复制和删除。这不是原子的,因为复制需要读取,然后有一个单独的删除。

最后,如果重命名和复制都不起作用,则会生成错误。

相关内容

  • 没有找到相关文章

最新更新