Est-il un moyen d'avoir un Codeigniter contrôleur de retour d'une image?
Je me demandais si il y avait un moyen pour un contrôleur, au lieu de retourner une chaîne de caractères, ou une vue, de retour d'une image (JPG, PNG, etc). Par exemple, au lieu de se terminer avec un $this->load->view('folder/special_view.php), je voudrais faire quelque chose comme $this->load->image ("images/gorille.png'), et donc si mon utilisateur à aller à ce contrôleur ils allaient voir une image comme si ils étaient allés à une normale .png ou jpeg. Puis-je définir les en-têtes de sorte qu'il s'attend à un MIME? Exemple de code de ce serait fantastique.
Qu'il prendrait une éternité pour moi d'expliquer pourquoi j'ai besoin de cela, mais il implique une premade de la CMS dans codeigniter, et avoir besoin certian choses pour être vrai. Merci beaucoup!
OriginalL'auteur Ethan | 2009-12-15
Vous devez vous connecter pour publier un commentaire.
sûr que vous pouvez, utiliser ce lieu de
$this->load->view()
Je suis en train de travailler sur la version actuelle de Codeigniter. ce code ne fonctionne pas pour moi
Je suppose que le
exit
commande n'a aucun effet, depuisdie
se termine le script et ils font le même travail de toute façon. Merci pour le code.OriginalL'auteur ekhaled
Ce n'est pas prévu que la surenchère, mais pǝlɐɥʞ la suggestion est un pur PHP de mise en œuvre qui n'est pas ré-utilisable. Vous voulez utiliser la syntaxe $this->load->image ("images/gorille.png') donc, voici comment vous pouvez.
Créer /application/libraries/MY_Loader.php
Il existe quelques façons dont vous pouvez utiliser ceci:
De base de sortie (par défaut, jpeg)
Envoyer mime-type à utiliser d'autres types d'images
Renvoient l'image
Comme $this->load->view, le 3ème paramètre est défini sur TRUE signifie qu'il sera de retour au lieu de directement à la sortie.
Espère que cela aide 🙂
La bibliothèque doit être en application/core/MY_Loader.php
oui, si vous utilisez 2.0 ou plus, alors il doit être dans
core/
paslibraries/
. 2.0 n'existait pas en 2009. 🙂OriginalL'auteur Phil Sturgeon
Un moyen plus facile avec automatique de type mime.
OriginalL'auteur Shiva127
Sur le Phil code:
Dans CodeIgniter 2.0, aujourd'hui, il y a un changement, qui doivent être prises afin de la faire fonctionner:
Je tiens à faire remarquer une petite faute de frappe sur la bibliothèque de l'explication:
L'autre des solutions à ce problème sont:
J'ai fait un petit code pour le faire fonctionner avec le noyau de codeIgniter bibliothèques:
Ou à l'aide de la Manipulation de l'Image de la Bibliothèque
Dans les deux cas, vous obtenez la même image que vous obtenez à partir de la source, mais dans la sortie.
Mais pour moi, je l'ai aimé plus de l'extension de la bibliothèque de base 🙂
Merci beaucoup Phil.
Bien plus qu'une chose que j'ai notée a l'intérieur, la charge de la fonction appelle la fonction include... selon le manuel php il faut utiliser le comprendre, si il est utilisé pour le traitement de... au lieu fonction readfile doit être utilisé... donc on peut utiliser la fonction readfile fourni dans le Fichier helper!
OriginalL'auteur Eduardo Inza
Si cela correspond à votre cas d'utilisation, il suffit de les rediriger vers il est tout simplement parfait. Par exemple, le suivi à l'aide d'images comme:
Pas nécessaire de modifier les en-têtes. Votre cas d'utilisation peuvent ne pas correspondre à ce, mais quelqu'un pourrait trouver cela utile ^_^
OriginalL'auteur Ryan Thompson
Je voudrais faire une
Si cela aide. Cheers!
OriginalL'auteur foxybagga
Cette méthode fonctionne même si vous avez $config['compress_output'] TRUE
OriginalL'auteur JohnWright