Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut!
je suis la structure classique du zend framework.
Dans mon dossier application j'ai créer un dossier assets.
A l'intérieur de ce dossier j'ai deux autres dossiers : vignettes et videos.
j'arrive à afficher mes images dans ma vue avec un plugin que j'ai utilisé pour le controller.Voici le plugin que j'ai créer:
class App_Controller_Plugin_AssetGrabber extends Zend_Controller_Plugin_Abstract { public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { if ($request->getControllerName() != 'assets') return; $action = $request->getActionName(); $value = $request->getParam('media',0); echo file_get_contents(APPLICATION_PATH.'/assets/' .$action . '/' .$value); exit; } }
dans mon bootstrap, j'ai créer des routes personnalisées :
protected function _initRoutes() { $routeur = Zend_Controller_Front::getInstance ()->getRouter (); $routeur->addRoute ( 'watchVideo', new Zend_Controller_Router_Route ( 'watch/:title', array ('controller' => 'watch', 'action' => 'index' ) ) ); $routeur->addRoute('assetsImg', new Zend_Controller_Router_Route('assets/vignettes/:media', array('controller' => 'assets','action'=>'vignettes'))); $routeur->addRoute('assetsVideo', new Zend_Controller_Router_Route('assets/videos/:media', array('controller' => 'assets','action'=>'videos'))); return $routeur; } protected function _initControllerPlugin() { $frontController = Zend_Controller_Front::getInstance(); $frontController->registerPlugin(new App_Controller_Plugin_AssetGrabber); }
Mon problème est que je n'arrive pas à lire mes vidéos.
par contre pour mes images je les recupère facilement dans ma vue avec par exemple ce code :
/assets/vignettes/<?php echo $videoRecent['video_img']; ?>
dans mon fichier log de mon zend server il me met ce message aussi:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 83466241 bytes) in C:\Program Files\Zend\Apache2\htdocs\globetv\library\App\Controller\Plugin\AssetGrabber.php on line 12
comment puis-je récupérer l'url des vidéos ?
Sachez que les vidéos sont au format flv.
Hors ligne
Si ta vidéo fait 1Go, avec cette méthode, tu as besoin d'un peu plus d' 1 Go authorisé pour ton script PHP pour que ton file_get_content s'execute sans provoquer d'erreur.
Tu peux changer ça avec ini_set("memory_limit","la taille dont tu as besoin");
Par contre ça n'est a priori pas judicieux de mettre des mémory limit très grands pour un script. Il vaut mieux envoyer ton fichier flv en progressif (avec des fread d'une longueur donnée plusieurs fois jusqu'à la fin du fichier à envoyer).
A+, Philippe
Hors ligne