这是我的控制器和方法的路线:
Route::post('exportarDireccionTodos','MyController@exportarDireccionTodos');
我正在使用 javascript 从单击按钮调用该路由:
$.ajax({
url: baseUrl+'exportarDireccionTodos',
type: 'POST',
data: {'id': optionsChecked},
success: function(response) {
//etc
MyController 有这个代码:
$delimiter=";";
$array = MyModel::findMany($todos)->toArray();
$filename = "direcciones.csv";
header("Content-Transfer-Encoding: UTF-8");
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="'.$filename.'";');
$f = fopen('php://output', 'wb');
foreach ($array as $line) {
fputcsv($f, $line, $delimiter);
}
fclose($f)
return response()->json([
'status' => 'success',
'mensaje' => 'Direcciones exportadas a CSV'
]);
我将一些发送id到我的模型,然后我正在创建一个 csv 文件,但我无法下载它,我只是在开发人员工具 XHR 中看到它制作得很好,如下所示:
我试过:
header('Content-Type: application/force-download');
header('Content-Type: text/csv');
与:
return Response::download($f, $filename, $headers); <-- here I got an error, Laravel 5.1 doesnt reconigze Response
与:
return response()->download($f, $filename);
总是发生同样的情况,制作了 csv 但无法下载。我已经尝试了 2 种其他方法来创建 csv,但它始终生成良好但无法下载
慕的地10843