Bonjour tout le monde
j'essaie d'integrer le helper Image dans mon projet sauf que je n'arrive pas a manupuler la fonction resize
car j'ai cette erreur :

getimagesize(D:\xampp\htdocs\pc\test\app\webroot\img\img/uploads/2014/10/128.jpg): failed to open stream: No such file or directory [APP\View\Helper\ImageHelper.php, line 63]

la fonction:

echo $this->Image->resize($thumb,515,200);

5 réponses


Lartak
Réponse acceptée

Bonsoir.
C'est plûtot simple à comprendre d'après l'erreur qui t'es retournée.
Le helper image, attend une url relative au dossier img, c'est à dire, qu'il attend une url qui démarre dans le dossier <u>img</u>.
Mais d'après ce que je peux voir, tu lui donnes une url qui ne se trouve pas dans le dossier img du webroot.
Tu lui envoies en gros : <u>webroot/<strong>uploads/2014/10/128.jpg</strong></u>, du coup, il cherche dans : <u>webroot/img/<strong>uploads/2014/10/128.jpg</strong></u>.
Le helper ne prévoit que des images se trouvant dans le dossier img, mais également pour les thèmes

# We define the image dir include Theme support
        $imageDir = (!isset($this->theme)) ? IMAGES : APP.'View'.DS.'Themed'.DS.$this->theme.DS.'webroot'.DS.'img'.DS;

Dans tous les cas, il s'attend à ce que l'image à redimensionner se trouve dans un dossier img de l'application et non autre part, comme dans ton cas le dossier uploads qui se trouve dans le dossier webroot.

Désolé, je me suis un peu embrouillé dans mon explication, mais le gros y est. En tout cas, comme l'a dit <u>bahamut</u>, il faut quand même faire l'effort de se pencher sur l'erreur retournée et d'essayer un minimum de trouver la solution sois-même.

Bonsoir, Il me semble que tu n'y met pas de la bonne volonté, quand on a une erreur en php, on essaye au moins de la comprendre avant de venir sur un forum, il n'y a vraiment rien qui te choque dans : [code]getimagesize(D:\xampp\htdocs\pc\test\app\webroot\img\img/uploads/2014/10/128.jpg): failed to open stream: No such file or directory [APP\View\Helper\ImageHelper.php, line 63][/code] 1ere Etape - Le message d'erreur : - failed to open stream: No such file or directory => même en étant mauvais en anglais et en php, on comprend que le fichier n'a pas été trouvé 2eme Etape - La fonction appelée : - getimagesize(**D:\xampp\htdocs\pc\test\app\webroot\img\img/uploads/2014/10/128.jpg**) => en règle général dans cakephp le chemin de images se trouve dans app/webroot/img/uploads/* Donc dans ton cas, tu as un soucis avec la valeur de $thumb. Le bon chemin devrait être : [code] $thumb = "D:\xampp\htdocs\pc\test\app\webroot\img\uploads\2014\10\128.jpg"; // et non $thumb= "D:\xampp\htdocs\pc\test\app\webroot\img\img/uploads/2014/10/128.jpg"; [/code] Il est souvent possible que l'on débute ou que l'on ne connaisse pas la bonne méthodologie de fonctionnement d'un framework mais il y a une chose qu'il ne faut jamais oublié : Il faut savoir coder en php avant de vouloir utiliser un framework. Cordialement

omar254
Auteur

Bonsoir bahamut

merci pour tes remarques,le problème c est pas moi qui génère ce lien pour la fonction url ,la variable $thumb est "/img/uploads/2014/10/128.jpg" alors que je ne sais pas pourquoi le helper n'arrive pas a générer la bonne url.

omar254
Auteur

merci beaucoup Lartak11,
grasse a ta remarque j'ai pu trouvé la solution.
le problème c est que le helper rajoute le chemin d'image comme tu a dit "\app\webroot\img" sur la variable $thumb alors que la variable $thumb contient déja le dossier img/ comme le cas ici "/img/uploads/2014/10/128.jpg"

alors j'ai appliquer un substr sur la variable pour générer les images sans problèmes

merci encore Lartak11

Bonsoir.
De rien, avec plaisir.