php - Apache:如果在文件复制期间请求,则返回损坏的文件

标签 php linux apache file-io filesystems

在我的网络服务器上,我每 15 分钟生成一个 gif 动画。结果被写入临时目录,然后我通过 php:copy() 将 gif(一些 MB)复制到 htdocs 目录。但是,如果在复制过程中有对文件的 http 请求,Apache 将只返回文件的一部分,这会导致动画中断。

我该如何解决这个问题?使用 rename() 而不是 copy()?或者有没有办法指示 Apache 在传送文件之前等待文件系统操作(这不应该是默认的吗?)?

最佳答案

绝对使用重命名而不是复制。重命名(本质上是 mv),只是改变周围的文件指针,所以即使它不是真正原子的(我还没能找到确凿的来源,但我怀疑是)它会是如此之快,以至于有人在此间隔内加载页面的机会几乎为零。

有关详细信息,请参阅:

希望这对您有所帮助!

关于php - Apache:如果在文件复制期间请求,则返回损坏的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342858/

相关文章:

javascript - 使用 jquery 将文本替换为变量的值

php - 在 PHP 中仅加载特定函数的最佳方法

linux - 在 Apache 配置中有条件地设置环境变量

php - Zend 调试器不会加载

php - Laravel 5.1 - 如何获得不附加的枢轴寄存器以进行添加

PHP/MYSQL-数字运算在零处停止

linux - OpenCv 3.1.0 - 编译失败

php - 有没有办法只允许访问以前在 .htaccess 中列出的文件?

linux - 系统重启时信号量会被删除(或释放)吗?

linux - 检测 block 设备是本地磁盘还是移动U盘