2013-05-15 2 views

Répondre

0

Pour traiter une image (créer des vignettes), vous devez d'abord la copier dans un répertoire local. Vous ne pouvez pas effectuer de traitement sur une image se trouvant sur un autre serveur ou une autre URL. Alors voici comment je l'ai fait dans un de mes projets PS.

1) Vérifiez d'abord si l'image existe ou non. Vous pouvez le faire en utilisant fopen en mode lecture, si elle renvoie true, alors le fichier existe. Il est recommandé de le faire car cela évite les appels inutiles au serveur distant.

$imageUrl = "http://www.nordix.cz/img/p/824-2268.jpg"; 
@fopen($imageUrl, "r"); 

2) Maintenant, vous avez l'image comme fopen a renvoyé true, vous devez copier l'image dans le répertoire temporaire PS comme ci-dessous

$tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS'); 
copy($imageUrl , $tmpName); 

après la fonction de copie télécharge l'image à température PS répertoire, vous pouvez traiter cette image comme vous le souhaitez. Rappelez-vous que vous devez effectuer tous les traitements sur $ tempName, car c'est le fichier maintenant. $ tempName est comme $ _FILES ['imageFieldName'] ['tmp_name'].

Merci

0

Prestashop fournit un ensemble de fonctions pour traiter les images. Je n'ai jamais travaillé sur 1.3 mais en 1.4 ils sont situés au /images.inc.php (ils ont fait un cours en 1.5). Jetez un oeil à ce fichier et vous trouverez toutes les fonctions dont vous aurez besoin, en particulier imageResize()