Anu*_*ana 4 php streaming json symfony
我想做什么:
用户点击了一个网址(例如:BASE-URL/download/json).
代码从数据库中获取大量数据并将其流式传输到JSON文件中,并提示用户下载该文件.
我尝试了什么:
创建了一个大型(700 MB)JSON文件.尝试用代码打开它,但是抛出了错误.
的file_get_contents($文件)
错误:
允许的内存大小为XXX字节耗尽(尝试分配YYY字节)
我在Symfony2工作.数据大小可达700MB.无法增加分配的内存.我怎样才能做到这一点?如果需要任何进一步的信息,请评论.
在上述所有评论的帮助下,我能够实现我想要的目标.
这是相同的代码.
$response = new StreamedResponse();
$i = -999999;
$response->setCallback(function () {
while($i < 999999){
echo '{"G1ello":"hualala"}';
$i = $i + 1;
}
});
$filename = "Data.json";
$contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $filename);
$response->headers->set('Content-Type', 'application/json');
$response->headers->set('Content-Disposition', $contentDisposition);
return $response;
Run Code Online (Sandbox Code Playgroud)
它创建了一个我可以下载的大文件.正是我想要的.发布解决方案,以便它可以帮助有相同问题的人.
| 归档时间: |
|
| 查看次数: |
5143 次 |
| 最近记录: |