SteamedResponse 在其他服务器的流明中不工作
SteamedResponse not working in lumen on other server
我正在为一组 API 使用 Lumen。
使用 symphony 库中内置的 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
终于解决了我的问题。
我正在为一组 API 使用 Lumen。
使用 symphony 库中内置的 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
终于解决了我的问题。