_getParam('q',''); $fichier = $fichier . '.csv'; if (!empty($fichier) && file_exists('fichiers/'.$fichier)) { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); list($nomFichier, $extFichier) = explode('.',$fichier); //Distribution du fichier sur la sortie standard switch ($extFichier) { case 'png' : $content_type = 'image/png'; break; case 'gif' : $content_type = 'image/gif'; break; case 'jpeg': case 'jpg' : $content_type = 'image/jpeg'; break; case 'pdf' : $content_type = 'application/pdf'; break; case 'csv' : $content_type = 'application/csv-tab-delimited-table'; break; } $this->getResponse()->setHeader('Content-Type', $content_type); $contentDisposition = 'attachment'; switch ($contentDisposition) { case 'inline': $this->getResponse()->setHeader('Content-Disposition', 'inline'); break; case 'attachment': $this->getResponse()->setHeader('Content-Disposition', "attachment; filename=\"$fichier\""); break; } $data = file_get_contents('fichiers/'.$fichier); $this->getResponse()->setHeader('Content-Length', strlen($data)) ->setHeader('Cache-Control', 'private, max-age=0, must-revalidate') ->setHeader('Pragma', 'public') ->setBody($data); } else { $this->view->assign('message', 'Fichier introuvable !'); } } /** * Donne accès aux données contenues dans une table de base de données */ public function tableAction () { $requetesql = $this->_getParam('q',''); $fichierCsv = $requetesql.'.csv'; $fichierSql = $requetesql.'.sql'; //Emplacement des fichiers générés - lien symbolique en PRODUCTION $path = DOC_WEB_LOCAL . 'fichiers/'; if (!is_dir($path)) { mkdir($path); } if (!empty($requetesql)) { if (!file_exists($path . $fichierCsv)) { if (file_exists('sql/'.$fichierSql)) { //Connexion mysql $sql = file_get_contents('sql/'.$fichierSql); require_once 'framework/common/mysql.php'; $db = new WDB(); $db->exportCSV($sql, $path . $fichierCsv, ',', "\n"); } } if (file_exists($path . $fichierCsv)) { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); //Distribution du fichier sur la sortie standard list($nomFichier, $extFichier) = explode('.',$fichierCsv); switch ($extFichier) { case 'png' : $content_type = 'image/png'; break; case 'gif' : $content_type = 'image/gif'; break; case 'jpeg': case 'jpg' : $content_type = 'image/jpeg'; break; case 'pdf' : $content_type = 'application/pdf'; break; case 'csv' : $content_type = 'application/csv-tab-delimited-table'; break; } $this->getResponse()->setHeader('Content-Type', $content_type); $contentDisposition = 'attachment'; switch ($contentDisposition) { case 'inline': $this->getResponse()->setHeader('Content-Disposition', 'inline'); break; case 'attachment': $this->getResponse()->setHeader('Content-Disposition', "attachment; filename=\"$fichierCsv\""); break; } $data = file_get_contents($path . $fichierCsv); $this->getResponse()->setHeader('Content-Length', strlen($data)) ->setHeader('Cache-Control', 'private, max-age=0, must-revalidate') ->setHeader('Pragma', 'public') ->setBody($data); } } else { $this->view->assign('message', 'Paramètres incorrects !'); } } }