您好,我正在嘗試使用laravel StreamedResponse塊方法將大表(100 000行導出爲CSV文件)。用下面的代碼粘貼它不能正常工作,並顯示下面的錯誤。StreamedResponse文件未找到錯誤
沒有發現在 http://laravel/allExport2的Firefox不能找到該文件的文件。檢查文件名的大寫或 其他鍵入錯誤。檢查文件是否被移動,重命名或刪除 。
控制器
use Symfony\Component\HttpFoundation\StreamedResponse;
$headers = array(
'Content-Type' => 'text/csv',
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Content-Disposition' => 'attachment; filename=test.csv',
'Expires' => '0',
'Pragma' => 'public',
);
$response = new StreamedResponse(function(){
// Open output stream
$handle = fopen('php://output', 'w');
// Add CSV headers
fputcsv($handle, [
"invoice_number",
"title",
]);
Order::chunk(500, function($orders) use($handle) {
foreach ($orders as $user) {
// Add a new row with data
fputcsv($handle, [
$user->invoice_number,
$user->courtesy_title,
]);
}
});
// Close the output stream
fclose($handle);
}, 200, $headers);
return $response->send();
嘗試使用' - > send()',' - > send()''''''''setCallback()''來禁止使用''''>。 – Ohgodwhy
@Ohgodwhy顯示未找到相同的錯誤文件。 – meera1002
@meera1002,檢查你的路線(可能是你試圖打開不存在的路線),確保你的代碼被調用。用簡單的東西代替它,比如'echo「Hello world」;' –