我正在尝试使用php导出csv文件。下面是我的代码,但是不起作用。
$filename = "csvtest.csv";
$headers = array(
'Content-Type' => 'application/csv;charset=UTF-8',
'Content-Disposition: attachment;filename='.$filename,
);
$handle = fopen('php://output', 'w');
fputcsv($handle, [
"title1",
"title2",
"title3",
"title4",
"title5",
"title6",
"title7"
]);
$dataset = DB::table('table')->where('id', $request['id'])->get();
foreach ($dataset as $data) {
fputcsv($handle, [
$data->id1,
$data->id2,
$data->date3,
$data->date4,
$data->date5,
$data->date6,
$data->date7
]);
}
fclose($handle);
return Response::download($filename, "csvtest.csv", $headers);
前端:
<td><v-btn @click="exportCsv(item['Id'])">CSV</v-btn></td>
Vue.js
methods: {
async exportCsv(id) {
this.axios.post('/api/csv', {
'id': id,
})
}
}
如果我将fopen('php://output', 'w');
更改为fopen('.../export/csvFolders', 'w');
它将导出到csvFolders,但是我需要手动另存为csv文件。
对于输出,理想的情况是能够自己选择文件夹,然后将csv文件保存到选定的文件夹中。