probleme de creation d'image automatique sur un ftp

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de creation d'image automatique sur un ftp

par gargantua » 09 mars 2006, 18:13

Désolé, c'etyais moi ci-dessus.

Sinon j'ai mis la main sur le probleme.
Il semblerai que la fonction createimagefromjpeg ne me retourne rien! Une chaine vide, signifiant une erreur. Pour j'ai verifier le parametre que je lui passe, c'est ok, et les image sont bien en jpg.



DOnc je suis toujours a la recherche d'un peu d'aide! :s

par Invité » 09 mars 2006, 17:44

Oui, c'est vrai que c'est plus fiable.

Mais le probleme ne vient pas de la, les repertoire etant bien présent.
J'avais changé le CHMOD de quelque dossier clé en 777, j'avais alors reussi a synchroniser ce que je voulaais, et croyais avoir regler le probleme, mais peu apres de nouveau impossible... >_<


je crack :'(

par Cyrano » 06 mars 2006, 10:54

À propos de la fonction mkdir() :
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Dans ton code, au lieu de faire directement :
mkdir(....);
Ajoute un test:
if(mkdir(....))
{
    //... suite des instructions...
}
else
{
    //... message d'erreur personnalisé: la création du répertoire a échoué
}

par gargantua » 06 mars 2006, 10:48

C'est bien la le problème!
Je n'obtient aucun message d'erreur (j'ai enlever les '@')!
Et le code ne bloque pas vraiment, c'est vraiment quand j'enregistre le fichier definitivement qu'il ne le fait pas (sauf certain repertoire qui ne pose bizarement pas de problème, avec les même droits...)

par Cyrano » 05 mars 2006, 19:46

Est-ce que tu obtiens au moins des messages d'erreur ?
As-tu vérifié que tes variables ont bien une valeur correspondant à ce qu'elles devraient avoir ?

Peux-tu isoler quelle partie du code bloque ?

par gargantua » 05 mars 2006, 19:42

50 visiteur et aucune réponse? :(

Je ne comprend vraiment pas...

Tout a l'heure je copie quelque image supplémentaire dans un album deja existant, je synchronise, pas de probleme.
Suite a quoi je fait un couper/coller de tout ça dans un autre racine, et re-coupe/colle dans le repertoire d'ou tout ça venez (faut pas chercher a comprend le pourquoi), et la, ben 'jvous le donne dans le mille, la synchronisation ne marche plus...

probleme de creation d'image automatique sur un ftp

par gargantua » 02 mars 2006, 21:48

Bonjour,
je dispose d'une gallerie photo (picsengine) que j'ai legerement modifié pour améliorer la vitesse d'affichage.

Le principe :
-je créer un album via l'interface (ce qui a pour effet de creer un dossier avec des sous dossier sur mon repertoire, ainsi que d'enregistré le nom dans la bdd)
- j'upload mes photos originales dans le sous repertoire nomcat/original/
- je lance la 'synchronisation' via l'interface, qui pour toute les photos contenu dans nomcat/original de chaque album, va créer un 'aperçu', une image de taille reduite pour l'affichage, et une miniature. (bien sur si c'est fichier existe deja il ne sont pas re-créés)

Tout ça marchait bien, et j'ai voulu ajouter une categorie il y a quelque jour, apres upload des image, j'ai lancer la synchronisation, mais la, probleme!
Aucun fichier n'est creer! Je ne comprend pas pourquoi.

D'autre part, si je supprime des aperçu/miniature dans les autres categories, là j'arrive bien a créer les fichiers... cela ne viendrais donc pas de la fonction de génération de mes images...?!
J'ai verifier les droit des dossier/photos, ce sont les memes qu'ailleur (jai meme teste avec un chmod 777 pour verifier).

Alors si quelqu'un a une idée...!
Merci.

Voici la fonction que j'utilise pour créer mes images :
function createlargeimage($from,$fileName)
{
	$gdVersion = getGDversion();

	if ($gdVersion == false) {
		return false;
	}

	$file = '../images/'.$from.'/original/'.$fileName;

	$dimensions = @getimagesize($file);
	$width		= $dimensions[0];
	$height		= $dimensions[1];



		$fileDest = '../images/'.$from.'/large/'.$fileName;
		
		if ($width < 640 && $height < 640){
		
			$outputX = $width;
			$outputY = $height;
		}
		else {
			if ($width < $height) {
				$outputX  = 480;
				$outputY  = 640;
			}
			else {
				if ($width > $height) {
				$outputX = 640;
				$outputY = 480;
				}
			}
		}
	$quality  = 85;

		$deltaX   = 0;
		$deltaY   = 0;
		$portionX = $width;
		$portionY = $height;
	

	if (strtolower(substr($fileName,-3)) == 'jpg')
    	$imageSrc  = @imagecreatefromjpeg($file);
	else if (strtolower(substr($fileName,-3)) == 'gif')
		$imageSrc  = @imagecreatefromgif($file);

	if ($gdVersion < 2 || isset($useCopyResized)) {
		$imageDest = @imagecreate($outputX, $outputY);
		if (@imagecopyresized($imageDest, $imageSrc, 0, 0, $deltaX, $deltaY, $outputX, $outputY, $portionX, $portionY)) {
			@imagejpeg($imageDest, $fileDest, $quality);
			@imagedestroy($imageSrc);
			@imagedestroy($imageDest);
			return true;
		}

	} else {
		$imageDest = @imagecreatetruecolor($outputX, $outputY);
		if (@imagecopyresampled($imageDest, $imageSrc, 0, 0, $deltaX, $deltaY, $outputX, $outputY, $portionX, $portionY)) {
			@imagejpeg($imageDest, $fileDest, $quality);
 			@imagedestroy($imageSrc);
			@imagedestroy($imageDest);
			return true;
		}
	}

	return false;
}

Et la fonction qui créer une categorie (enfin la partie correspondante):


...
else if ($act == 'new2')
{
 	if (!isset($_POST['cat']) || $_POST['cat'] == '') {
    	echo "Vous n'avez pas tout rempli.<br /><a href='?p=cat&act=new'>Ajouter une catégorie</a>";
		exit;
	}

	$f = "cat".date("U");
	
	mkdir("../images/".$f);
	mkdir("../images/".$f."/large/");
	mkdir("../images/".$f."/tiny/");
	//ajout
	mkdir("../images/".$f."/original");

	createIndex("../images/");
	createIndex("../images/".$f."/large/");
	createIndex("../images/".$f."/tiny/");
	//ajout
	createIndex("../images/".$f."/original/");
	
	$query = "INSERT INTO ".getprefix('categories')." (
									`name`,
									`url`
						  ) values (
									'".$_POST['cat']."',
									'".$f."')";

	$res = mysql_query($query);
	echo "La catégorie a bien été créée.<br /><a href='?p=cat'>Retour</a>";
...
}