2009-04-16 8 views
2

Lorsque vous essayez d'enregistrer une miniature faite avec GDPHP GD-imagejpeg incapable d'ouvrir

imagejpeg($tnImage, "../../img/thumbs/".$maxWidth."x".$maxHeight."_".$filename); 

Je reçois l'erreur suivante:

Attention: imagejpeg() [function.imagejpeg]: Impossible d'ouvrir « ../../img/thumbs/80x80_55865-drops.jpg » pour l'écriture: Aucun fichier ou répertoire dans /home/user/workspace/stewart/server-side/libImg.php

/home/utilisateur/espace de travail/img/thumbs a sa perm issions défini sur 0x777.

Qu'est-ce qui ne va pas ici?

+0

Il ne peut pas trouver le fichier, mais cela ne devrait pas être un problème, car la fonction imagejpeg devrait le créer si elle n'existe pas. Quelle version de GD utilisez-vous? – davethegr8

Répondre

1

D'où exécutez-vous le fichier? Si elle est à partir du répertoire server-side alors je pense que vous manque un "../"

Essayez ceci:

var_dump(realpath("../../img/thumbs/".$maxWidth."x".$maxHeight."_".$filename)); 
+0

var_dump (realpath ("../../ img/thumbs")); renvoie bool (false). – Gerardo

+1

De php.net: realpath() renvoie FALSE en cas d'échec, par ex. si le fichier n'existe pas. Vérifiez le chemin, essayez avec le chemin absolu peut-être. – Strae

+0

Je reçois une fausse réponse à ce sujet: http://mydomain.com/wpdev/wp-content/uploads/bool(false). J'ai le sentiment qu'il ne sauvegarde pas mon image téléchargée sur le serveur n'importe où. Je vais essayer de faire un téléchargement direct au lieu de le redimensionner pour l'instant et voir ce qui se passe. – user1146223

1

Dans

/home/user/workspace/stewart/server-side/ 

le répertoire

../../img/thumbs/ 

équivaudrait à

/home/user/workspace/img/thumbs/ 

si vous avez besoin

../../../img/thumbs/ 
+0

Désolé, une erreur est survenue lors de l'écriture de la question: /home/utilisateur/workspace/img/thumbs a ses permissions définies sur 0x777. – Gerardo

1

Une solution pour ce fournit le imagejpeg avec le chemin complet du fichier.

Vous pouvez avoir dans config.php quelque chose comme

define('APPLICATION_PATH', dirname(__FILE__)); 

Ensuite, dans votre functions.php appel imagejpeg comme ceci:

@imagejpeg($image, APPLICATION_PATH . '/uploads/myfile.jpg', $quality); 
Questions connexes