Cryonos80 Posted August 5, 2022 Share Posted August 5, 2022 Bonjour à tous, J'ai développé un petit module avec un Front Controller qui ne fait qu'une chose: forcer le téléchargement d'un PDF. J'utilise Prestashop 1.7.8.6 et le serveur est sous PHP 7.4 J'utilisais ce module sur une autre config PHP 7.3, sans problème, mais sous PHP 7.4 il est impossible d'utiliser la fonction header() dans le Front Controller, car Prestashop semble déjà faire un output en amont : Quote Warning: Cannot modify header information - headers already sent by (output started at /xxx/modules/monmodule/controllers/front/downloadPdf.php:1) ... Une idée d'où peut venir l'output? (Je précise que le mode debug est désactivé). Voici le code du Controller: <?php class MonmoduleDownloadPdfModuleFrontController extends ModuleFrontController { public $ssl = true; public $ajax = false; public $auth = false; public $guestAllowed = true; public $template = false; public function __construct() { parent::__construct(); } public function init() { if (!Tools::getIsset('doc')) { die("Error"); } $filepath = //MYPATHHERE ; if (file_exists($filepath)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($filepath) . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($filepath)); // Flush system output buffer flush(); readfile($filepath); die(); } } public function display() { } } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now