response - SteamedResponse 在其他服务器上的流明中不起作用
问题描述
我将Lumen用于一组 API。
使用交响乐库中内置的streamedresponse。
use Symfony\Component\HttpFoundation\StreamedResponse;
protected function getFileResponseHeaders($filename)
{
return [
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Content-type' => 'text/csv; =utf-8',
'charset' => 'utf-8',
'Content-Disposition' => 'attachment; filename='.$filename,
'Expires' => '0',
'Pragma' => 'public'
];
}
//'Content-Type: '
protected function streamFile($callback, $headers)
{
$response = new StreamedResponse($callback, 200, $headers);
$response->send();
}
我在一个场景中使用这种方法,我想在命令行中以 2000 块的数据流式传输数据。我有多达 700 万行的大量数据要流式传输。
整个事情在具有以下规格的服务器上运行良好。
- php 7.3.27
- centos 软呢帽 7
- 阿帕奇 2.4.41
- mysql8
但我有其他服务器,该流仅列出第一批。其他服务器的规格相同如下:
- php 7.4
- centos 8
- 阿帕奇 2.4.47
- mysql8
我想要在所有服务器上运行此流的指导。我已经比较了 php.ini 和我能想到的所有其他内容。提前致谢。
解决方案
除了流式响应工作的服务器之外,所有服务器都缺少PHP ZTS 。在服务器上添加php zts
最终为我解决了这个问题。
推荐阅读
- c - main.c:16:9: 错误:C 程序中的流浪 '\32'
- winforms - 如何在 Visual Studio 2019 中为 32 位编译 C# 类库
- python - 我验证自动完成功能是否正常,但没有出现任何结果
- python - 想从图像中检测模糊,但无法正确处理
- algorithm - 排队/等候名单位置计算器
- python - 无法按类别显示购物车数据库(Django)
- html - 基于 HTML 的混合内容表单 mailto
- python - BigQuery Python API copy_table 复制架构但不复制数据
- flutter - Flutter:通过强制手势竞技场获胜者修复同步融合日历滚动?
- snmp - #SNMP - GetBulk V2 请求限制为 100 个结果?