Не долго я радовался: при скачивании по ссылке файл где-то в браузере кэшируется и даже после изменения этого файла на сервере скачивается его первая версия. Даже после удаления этого файла, он продолжает скачиваться. пробовал на 3-х браузерах.
От этого способа пришлось отказаться.
Теперь делаю так:
отправляю в контроллер ajax запрос, а в контроллере выполняю это:
$file_name = Tools::getValue('filename');
header("Content-Length: ".filesize($file_name));
header("Content-Disposition: attachment; filename=".$file_name;
header("Content-Type: application/x-force-download; name=\"".$file_name."\"");
readfile($file_name);
$this->ajaxDie(Tools::jsonEncode(array(
'result' => true,
'restext' => 'Файл подготовлен!',
)));
Все прекрасно работает, но только в Админ-части.
При попытке сделать такое во Фронте, после выполнения строки readfile($file_name) ajax возвращает exception = parsererror.
И в jqXHR.responseText находится содержимое этого файла с "приляпаным" в конце '{"result":true,"restext":"\u0424\.......u043d!"}',
.
Почему в админке работает, а во фронте нет?
Спасибо