Добрый день!
Проект на Yii2. Хочу сформировать csv-файл и заставить его скачаться.
Если перейти на метод через строку браузера: файл формируется и даже скачивается. Вот сам метод:
public function actionExportStaffCsv() {
//$requestID = htmlspecialchars(trim(Yii::$app->request->get('dept')));
$filepath = $_SERVER["DOCUMENT_ROOT"].'/web/junk/test_'.date('dmYhis').'.csv';
$output = fopen($filepath, 'w+');
fputcsv($output, ["#", "Description", "test", "test2"], ';');
fputcsv($output, ["1","2","3","4"], ';');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.'test.csv');
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
}
Но если обратиться к методу через аякс - файлик формируется но не скачивается. Вот jquery:
$("#exportStaffCsv").on('click', function (e) {
e.preventDefault();
//var last_element = getUrlParam();
$.ajax({
url: "/ru/tree/export-staff-csv",
data: {dept: 4},
success: function (resp) {
//alert(resp);
}
});
});