Для того чтобы PDF-файл в OpenCart 3 открывался в новом окне браузера, а не скачивался, вам нужно изменить заголовки HTTP-ответа и указать, что тип контента - это PDF и должен открываться в браузере, а не скачиваться.
Для этого вам нужно будет внести изменения в код контроллера загрузки. Вот как это можно сделать:
Table of contents [Show]
1. Откройте файл контроллера загрузки.
Данный файл обрабатывает скачивание PDF-файла, находится по адресу /catalog/controller/product/product.php.
2. Найдите код, который отправляет файл для скачивания (у меня это 591 строка):
$file = DIR_DOWNLOAD . $download_info['filename'];
3. Измените код, чтобы он выглядел следующим образом:
$file = DIR_DOWNLOAD . $download_info['filename'];
$this->response->addHeader('Content-Type: application/pdf'); // Указываем тип контента PDF
$this->response->addHeader('Content-Disposition: inline; filename="' . basename($file) . '"'); // inline указывает на открытие в браузере
$this->response->addHeader('Content-Length: ' . filesize($file));
readfile($file);
Здесь мы изменили Content-Disposition
на inline
, что указывает браузеру открывать файл в браузере, а не скачивать его. Также установили Content-Type
как application/pdf
, чтобы браузер знал, что это PDF-файл.
4. Сохраните файл контроллера.
Теперь, когда пользователь перейдет по ссылке для скачивания PDF-файла, файл будет открываться в новом окне браузера, а не скачиваться на компьютер.
Пожалуйста, убедитесь, что ваши файлы PDF находятся в директории, указанной в настройках OpenCart, и что пути и названия файлов соответствуют вашей конкретной конфигурации.