php - 为什么 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 使用。
解决方案
这是 copy() 函数的一个著名问题。如果您需要复制大文件,最好通过流来完成。更多细节在这里用 PHP 复制大文件(超过 2 GB)
推荐阅读
- android - 膨胀视图在 MVVM 设计模式中是如何工作的?
- javascript - javascript:拖动路径元素使其不可用
- javascript - Google 自定义搜索引擎标记的 Gatsby 错误
- xquery - xquery 属性等于带有空格的 id
- python - 将项目拆分为模块的 Pythonic 方式?
- android - 如何通过将项目添加到微调器中来对项目进行排序?
- swift - 如何制作正确过滤本地字符的 NSPredicate?
- ruby-on-rails - 使用 Facebook(rails)登录时发生无法加载 URL 错误
- python - 使用django和vue时,api响应为空
- c++ - 指向指向输出错误值的数组的指针?