1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

Comment afficher une image ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par cvbperso, 29 Octobre 2013.

  1. cvbperso
    cvbperso WRInaute discret
    Inscrit:
    16 Juin 2006
    Messages:
    200
    J'aime reçus:
    0
    Bonjour,

    Toujours dans le cadre de mon projet, sous Zend, je cherche à appeler une image par le biais de mon controlleur.


    Code:
    class PictController extends Zend_Controller_Action
    {
    
        public function indexAction()
        {   
    
        	$objpict = new Application_Model_Page();     	
        	$objpict->CheminPictures(Application_Model_String::ExtractNamePict($this->getParam('niveau0')));    	
        	$this->_helper->viewRenderer->setNoRender(true);
        	$this->_helper->getHelper('layout')->disableLayout();
        	header('Content-Type: image/jpeg');
        	header('Content-Length: ' . filesize($file));
        	echo file_get_contents($file);
        	exit;    	
        	
        }   
        
    }
    

    Une route à été crée mais elle n'est pas prise en compte ! :(

    Code:
    		$routeRegex = new Zend_Controller_Router_Route_Regex(
    				'img/([a-z-0-9-/-]+).jpg',
    				array('controller' =>'pict','action' => 'index'),
    				array(1 => 'niveau0',2 => 'niveau1',3 => 'niveau2'),'img/%s.jpg');
    		
    		$this->_routeur->addRoute('routeimage', $routeRegex);

    Comment procéder afin d'appeler ce controlleur depuis ma vue afin qu'il me renvoie le file_get_contents de l'image ?
    Le code ci-dessous me renvoie le nom de la page dans laquelle je suis, ce qui me convient évidement pas !

    Code:
    <img alt="montitre" src="<?php echo $this->url(array('controller' => 'pict', 'action' => 'index')); ?>" > 

    Une idée comment faire ? ou du moins la méthode sous Zend permettant d'appeler un controlleur depuis une vue ? :)

    D'avance merci
    ++
     
  2. cvbperso
    cvbperso WRInaute discret
    Inscrit:
    16 Juin 2006
    Messages:
    200
    J'aime reçus:
    0
    Problème résolu :

    Le but :

    Mettre les images dans un autre endroit que dans le dossier public de Zend et ne pas avoir à mettre un nom SEO pour chacun des images.
    L'idée étant de mappé le noms des images réel au nom virtuel...

    Afficher l'image

    Mettre un chemin virtuel dans la balise img.
    Aucun dossier n'existe, on peut mettre n'importe quel arborescence.

    Code:
    <img src="<?php 
    		echo $this->url(
    			array( 'niveau0'=>'img/maison/jardin.jpg')
    		
    		,false,false,false) ?>" />

    Comment trouve t-il la bonne image ?

    Une route à été crée pour rediriger la requête vers le bon controller et la bonne action.


    Code:
    		$routeRegex = new Zend_Controller_Router_Route_Regex(
    				'img/([a-z-0-9-/-]+).jpg',
    				array('controller' =>'pict','action' => 'index'),
    				array(1 => 'niveau0',2 => 'niveau1',3 => 'niveau2'),'img/%s.jpg');
    		
    		$this->_routeur->addRoute('routeimage', $routeRegex);
    

    Coté Controller

    Le controller reçoit le paramètre passé - GetParam("niveau0") - et me renvoie le file_get_contents de l'image.
    Le vrai chemin de l'image fut trouvé en le recherchant en base...


    Code:
    class PictController extends Zend_Controller_Action
    {
    
        public function indexAction()
        {      	
        	
    
        	$objpict = new Application_Model_Page();    	
        	//var_dump($this->_getAllParams());      	
        	$file = 'images/bx3.jpg';
    
        	//$objpict->CheminPictures(Application_Model_String::ExtractNamePict($this->getParam('niveau0')));
    
        	
        	$this->_helper->viewRenderer->setNoRender(true);
        	//$this->_helper->getHelper('layout')->disableLayout();
        	/*$file = 'pict/M2DR4003.jpg';*/
        	header('Content-Type: image/jpeg');
        	header('Content-Length: ' . filesize($file));
        	echo file_get_contents($file);
        	exit;
        	
        }
        
        
    }

    Conclusion

    Avec cette méthode, vous pouvez crée des dossier virtuel, crée des noms virtuel d'image et renvoyé au visiteur la vrai image.
    Il vous faut juste une base de données pour faire la relation entre le nom virtuel que vous donnez et le nom réel de l'image...

    Requête inutile en base de données ? Oui surement.
    Qu'est-ce qui empêche la mise en cache du chemin réel de l'image ?
     
Chargement...
Similar Threads - afficher image Forum Date
Image à la une à ne pas afficher en haut de l'article, comment ? Développement d'un site Web ou d'une appli mobile 1 Septembre 2016
afficher liste d'images Développement d'un site Web ou d'une appli mobile 20 Août 2013
Forcer à afficher son site dans Google Images ? (2013) Référencement Google 16 Août 2013
Afficher une image en javascript Développement d'un site Web ou d'une appli mobile 2 Mai 2013
Heberger et afficher des images en masse d'un anime Droit du web (juridique, fiscalité...) 23 Décembre 2012
Afficher "Images correspondant à ..." dans le résultat de recherche Google Débuter en référencement 2 Septembre 2012
Comment afficher l'image d'un flux rss besoin d'aide ! Développement d'un site Web ou d'une appli mobile 22 Juin 2012
Afficher les images en fonction de portrait ou paysage Développement d'un site Web ou d'une appli mobile 1 Octobre 2010
Afficher / cacher un div au survol d'une image Développement d'un site Web ou d'une appli mobile 27 Août 2010
Wordpress : afficher des images en vignettes dans un article Développement d'un site Web ou d'une appli mobile 7 Mars 2010
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice