Laravel API:返回文件

时间:2018-08-06 08:47:23

标签: laravel laravel-5

我在AngularJs中有一个用于前端的应用程序,在Laravel中有一个用于后端的应用程序,在我的前端中,我向api发送了一些请求,并希望将这些数据返回到一个csv文件中,该文件会自动下载。

这就是我在api上所做的:

public function exportToCsv(Request $request)
{
  //$helper = new Helper();
  $csv_data = json_decode($request->getcontent(), true);

$headers = [
  'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  'Content-type' => 'text/csv',
  'Content-Disposition' => 'attachment; filename=legend.csv',
  'Expires' => '0',
  'Pragma' => 'public'
];

$callback = function () use ($csv_data) {
  $FH = fopen('php://output', 'w');
  foreach ($csv_data as $row) {
    fputcsv($FH, $row);
  }
  fclose($FH);
};

//return Response::stream($callback, 200, $headers);
return response()->download($callback, 200, $headers);

}

我也尝试使用流而不是下载,但是对于这两种解决方案,它都无法工作。

console.log未定义时,我的角度应用程序中的结果是“未定义”,但是如果我在“网络”选项卡中签到,结果就是创建一个csvfile所需的数据(我的所有变量都用逗号分隔),我在做什么错了吗?

0 个答案:

没有答案