Forum Clubic

Upload + miniature fonctionne à moitier

//on définis les valeur principale de départ :
//le prefixe venant se greffer devant le nom de la photo pour différencier la miniature
define('PREFIXE', 'mini_', TRUE);
//la largeur de la miniature
define('LARGEUR_MINI', 50, TRUE);
//la hauteur de la miniature
define('HAUTEUR_MINI', 80, TRUE);



if (!empty($_FILES)) 
{
	//on stock l'image envoyé
	$tempFile = $_FILES['Filedata']['tmp_name'];
	//on stock le chemin du répertoire
	$targetPath = $_SERVER['DOCUMENT_ROOT'] . 'app/webroot/uploads/';
	
	//on stock la cible
	$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
	
	//si le déplacement du fichier envoyé à fonctionné
	if(move_uploaded_file($tempFile,$targetFile))
	{
		echo '1';
		
		// on récupère les infos de l'image
		list($largeur_orig,$hauteur_orig,$ext) = getimagesize($_FILES['Filedata']);

		$nom = PREFIXE . $tempFile;
		
		switch($ext)
		{
			case 1 :
				//si $ext = gif
				$source = createimagefromgif($_FILES['Filedata']);
			break;
			
			case 2 : 
				//si $ext = jpeg
				$source = createimagefromjpeg($_FILES['Filedata']);
			break;
			
			case 3 :
				//si $ext = png
				$source = createimagefrompng($_FILES['Filedata']);
			break;
		}
		
		
		//si l'image envoyé est plus grosse que la taille d'une miniature
		if($largeur_orig>LARGEUR_MINI || $hauteur_orig>HAUTEUR_MINI)
		{
			// si image plus haute que large
			if($largeur_orig<$hauteur_orig)
			{
				$hauteur_finale = HAUTEUR_MINI;
				// réduction proportionnel de la largeur par rapport à la hauteur
				$largeur_finale = $largeur_orig*HAUTEUR_MINI/$hauteur_orig;
			}
			else //sinon image plus large que haute
			{
				$largeur_finale = LARGEUR_MINI;
				// réduction proportionnel de la hauteur par rapport à la largeur
				$hauteur_finale = $hauteur_orig*LARGEUR_MINI/$largeur_orig;
			}
			
			//création de l'image de destination aux dimensions
			$thumb = imagecreatetruecolor($largeur_finale, $hauteur_finale);
			
			//fonction pour redimensionner l'image dans source dans l'image de destination
			imagecopyresized($thumb, $source, 0, 0, 0, 0, $largeur_finale, $hauteur_finale, $largeur_orig, $hauteur_orig);
		}
		else //si elle est plus petite
		{
			//création de l'image de destination aux dimensions
			$thumb = imagecreatetruecolor($largeur_orig, $hauteur_orig);
		}

		//chemin de la miniature
		$dossier = $targetPath . 'mini/';
		
		switch($ext)
		{
			case 1 :
				imagegif($thumb,$dossier.$nom);
			break;
			
			case 2 : 
				imagejpeg($thumb,$dossier.$nom);
			break;
			
			case 3 :
				imagepng($thumb,$dossier.$nom);
			break;
		}
	}
}
?>

Voilà mon code.

En première partie je récupère une image que je colle dans un répertoire, jusque là tout va bien mon script s’execute à merveille.

Mais arrivé le moment fascidique de la création de miniature, pas de message d’erreur, pas de beugue, pas de crash, bref, rien du tout. Mais mon script ne créé pas les miniatures…

Avez-vous une idée de m’erreur à l’origine du problème?

Merci d’avance pour vos réponse.

J’ai pas trop le temps de regarder, mais si tu ne trouve pas de solution de passerai plus tard

par contre regarde :
www.asp-php.net…

Ton code m’a permis de rajouter 2 ou 3 truc mais n’a pas résolus mon problème je poste mon nouveau code (même s’il ressembel excessivement au premier.

//on définis les valeur principale de départ :
//le prefixe venant se greffer devant le nom de la photo pour différencier la miniature
define('PREFIXE', 'mini_', TRUE);
//la largeur de la miniature
define('LARGEUR_MINI', 50, TRUE);
//la hauteur de la miniature
define('HAUTEUR_MINI', 80, TRUE);



if (!empty($_FILES)) 
{
	//on stock l'image envoyé
	$tempFile = $_FILES['Filedata']['tmp_name'];
	//on stock le chemin du répertoire
	$targetPath = $_SERVER['DOCUMENT_ROOT'] . 'app/webroot/uploads/';
	
	//on stock la cible
	$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
	
	//si le déplacement du fichier envoyé à fonctionné
	if(move_uploaded_file($tempFile,$targetFile))
	{
		echo '1';
		
		// on récupère les infos de l'image
		list($largeur_orig,$hauteur_orig,$ext) = getimagesize($_FILES['Filedata']);

		//définis le nom de destination de la miniature
		$nom = PREFIXE . $_FILES['Filedata']['name'];
		

		switch($ext)
		{
			case 'gif' :
				//si $ext = gif
				$source = createimagefromgif($_FILES['Filedata']);
			break;
			
			case 'jpg' :
			case 'jpeg' :
				//si $ext = jpeg
				$source = createimagefromjpeg($_FILES['Filedata']);
			break;
			
			case 'png' :
				//si $ext = png
				$source = createimagefrompng($_FILES['Filedata']);
			break;
		}
		
		
		//si l'image envoyé est plus grosse que la taille d'une miniature
		if($largeur_orig>LARGEUR_MINI || $hauteur_orig>HAUTEUR_MINI)
		{
			// si image plus haute que large
			if($largeur_orig<$hauteur_orig)
			{
				$hauteur_finale = HAUTEUR_MINI;
				// réduction proportionnel de la largeur par rapport à la hauteur
				$largeur_finale = $largeur_orig*HAUTEUR_MINI/$hauteur_orig;
			}
			else //sinon image plus large que haute
			{
				$largeur_finale = LARGEUR_MINI;
				// réduction proportionnel de la hauteur par rapport à la largeur
				$hauteur_finale = $hauteur_orig*LARGEUR_MINI/$largeur_orig;
			}
			
			//création de l'image de destination aux dimensions
			$thumb = imagecreatetruecolor($largeur_finale, $hauteur_finale);
			
			//fonction pour redimensionner l'image dans source dans l'image de destination
			imagecopyresampled($thumb, $source, 0, 0, 0, 0, $largeur_finale, $hauteur_finale, $largeur_orig, $hauteur_orig);
		}
		else //si elle est plus petite
		{
			//création de l'image de destination aux dimensions
			$thumb = imagecreatetruecolor($largeur_orig, $hauteur_orig);
		}

		//chemin de la miniature
		$dossier = $targetPath . 'mini/';
		
		switch($ext)
		{
			case 'gif' :
				imagegif($thumb,$dossier.$nom);
			break;
			
			case 'jpg' :
			case 'jpeg' :
				imagejpeg($thumb,$dossier.$nom,100);
			break;
			
			case 'png' :
				imagepng($thumb,$dossier.$nom,9);
			break;
		}
	}
	imagedestroy ($thumb);
    imagedestroy ($source);
}

Petit UP, personne n’a d’idée? :frown: