Я пытался найти решение своей проблемы в течение 2 дней и не могу заставить свой код работать. Моя цель - загрузить файл PDF одним нажатием кнопки, но я хочу, чтобы путь к файлу был скрыт для пользователей. Проект, над которым я работаю, использует систему Kohana (3.3). Я пытался вызвать эту функцию с помощью ajax:
public function action_download_pdf()
{
$this->auto_render = false;
if ($this->request->post()) {
$data = $this->request->post();
$file = 'uploads/pdfs_folder/'.$data['pdf_number'].'.pdf';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$data['pdf_number'].'.pdf');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
}
}
Я получаю код состояния: 200 ОК, но я могу отобразить его только на вкладке «Предварительный просмотр» в консоли разработчика.
https://i.stack.imgur.com/vyAiK.jpg
Я не могу понять, что мне следует сделать, чтобы загрузить его, а не показывать его таким образом?