首页 > 解决方案 > 为什么 copy() 函数无法复制任何超过 2.41 GB 的文件?

问题描述

PHP 的copy函数无法复制任何超过 2.41 GB 的文件。它返回布尔值并且不记录任何类型的错误,但目标文件在大约2.41 GBtrue处被“切断” 。在 64 位 NTFS Windows 10 上测试。

这在手册中没有提到:https ://www.php.net/copy

我几乎想知道这是否是一些通常不应该发生的晦涩的错误。它可能仅限于 Windows 吗?无论哪种方式,当我发现我已经“安全”地备份我的 > 2.41 GB 文件很长时间以来,这些文件都被默默地“切断”而损坏了,这让我感到非常害怕。

直到完全有机会我才发现它,因为它声称完成时没有错误,也没有记录/引发任何错误消息/信号。

当然,这是在 CLI PHP 脚本(不是 WWW!)中运行的,允许无限运行时间和 RAM 使用。

标签: phpwindowsiocopycommand-line-interface

解决方案


这是 copy() 函数的一个著名问题。如果您需要复制大文件,最好通过流来完成。更多细节在这里用 PHP 复制大文件(超过 2 GB)


推荐阅读