webservice/application/controllers/RefController.php
2010-09-13 14:38:00 +00:00

90 lines
2.5 KiB
PHP

<?php
class RefController extends Zend_Controller_Action
{
public function preDispatch()
{
//Vérification connexion utilisateur
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()){
$this->_redirect('/user/login');
}
}
public function indexAction ()
{
//Ne fait rien...
}
/**
* Donne accès au fichier
*/
public function fichierAction ()
{
//Lecture du nom du fichier
$fichier = $this->_getParam('q','');
if (!empty($q) && file_exists(APPLICATION_PATH . '/public/fichiers/'.$fichier))
{
//Désactivation de la vue
$this->_helper->viewRenderer->setNoRender();
//Distribution du fichier sur la sortie standard
list($nomFichier, $extFichier) = explode('.',$fichier);
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(APPLICATION_PATH . '/public/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 ()
{
$parametresEncoded = $this->_getParam('q','');
if (!empty($parametresEncoded))
{
//Gestion des paramètres
$parametres = base64_decode($parametresEncoded);
if (preg_match('/([a-zA-z0-9]+\.[a-zA-z0-9]+)\((.*)\)/', $parametres, $matches))
{
$dbTable = $matches[1];
$colonnes = explode(',', $matches[2]);
}
//Connexion et requete base de données
//Affichage
} else {
$this->view->assign('message', 'Paramètres incorrects !');
}
}
}