Fonction php pour redimensionner une image et uploader dans un dossier.

Soyez le premier à donner votre avis sur cette source.

Vue 8 167 fois - Téléchargée 1 127 fois

Description

Une petite fonction php qui permet de redimensionner une image à une hauteur et une largeur désirer et de l'uploader directement sur votre site web.
Besoin de bonne connaisance pour utiliser ce script.

C'est simplement une fonction vous devez appelez la fonction lors de l'envoie d'un formulaire.

Source / Exemple :


<?php
function getImgResize($dossier, $taille_x, $taille_y, $file_name){ // $dossier = destination, $taille_x = largeur maximum, $taille_y = hauteur maximum, $file_name = LE NOM DU $_FILES DANS CODE HTML 
        $content_dir =  $dossier; // Dossier où sera déplacé le fichier (mini/)
        $tmp_file = $_FILES[$file_name]['tmp_name'];
		// Vérifie si le fichier peu étre updater.
        if(!is_uploaded_file($tmp_file)){ $erreur = array(TRUE,1,'Le fichier est introuvable'); }
        // On vérifie maintenant l'extension ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $type_file = $_FILES[$file_name]['type']; // Type du fichier envoyer
		// Recherche du type de fichier et appel de la variable $type si fichier valide !
		if(($type_file=='image/pjpeg') || ($type_file=='image/jpeg'))
		{ $type = 'jpeg'; }elseif($type_file=='image/x-png' || $type_file=='image/png')
		{ $type = 'png'; }elseif($type_file=='image/gif')
		{ $type = 'gif'; } // Recherche du type de fichier
		// Vérifie si la variable $type (Qui est appeler ci-haut!) est vide car elle devrais étre appeler en haut si c'est le bon fichier
        if(!isset($type)){ $erreur = array(TRUE,2,'Le fichier n\'est pas une image') ; } 
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $name_file = $_FILES[$file_name]['name'];
        if(preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file)){ $erreur = array(TRUE, 3, 'Nom de fichier non valide'); } // Vérifie si les caractéres sont valide.
		
		if(!isset($erreur)) //S'il n'y a pas d'erreur on continue...
		{
			$OriSize=getimagesize($tmp_file); // Cherche les dimentions original de l'image
			// Vérifie le types (JPG,GIF,PNG) et crée la première image !/////////
			switch($type) 
			{	case 'jpeg': $image = imagecreatefromjpeg($tmp_file); break;
				case 'png': $image = imagecreatefrompng($tmp_file); break;
				case 'gif': $image = imagecreatefromgif($tmp_file); break; }
			///////////////////////////////////////////////////////////////////////
			if ($OriSize[0] < $OriSize[1]) {	$largeur_finale=round(($OriSize[0]*$taille_y)/$OriSize[1]); $hauteur_finale=$taille_y; 
			} else { 							$hauteur_finale=round(($OriSize[1]*$taille_x)/$OriSize[0]); $largeur_finale=$taille_x; }
			$image_mini = imagecreatetruecolor($largeur_finale, $hauteur_finale); // CRÉATION DE L'IMAGE FINALE
			imagecopyresampled($image_mini, $image, 0, 0, 0, 0, $largeur_finale, $hauteur_finale, $OriSize[0], $OriSize[1]);// COPIE FINALE
			// Vérifie le types (JPG,GIF,PNG) FINALISATION...///////////
			switch($type) {	
			case 'jpeg': imagejpeg ($image_mini, $content_dir.$name_file); break; 
			case 'png': imagepng ($image_mini, $content_dir.$name_file); break; 
			case 'gif': imagegif ($image_mini, $content_dir.$name_file); break; }
			//////////////////////////////////////////////////////////////////////////
			$link = 'http://www.'.$_SERVER["SERVER_NAME"].'/'.$content_dir.$name_file;
			echo $link.'<BR>';
			echo '<img src="'.$link.'" />';
		}else{
			echo $erreur[2]; // SI UNE ERREUR C'EST PRODUITE VA AFFICHER L'ERREUR !
			$link = ''; // Na pas de lien si pas d'image...
		}
}
/* Les valeurs pour $erreur sont 	[0]=TRUE [1]=1 [2]='Le fichier est introuvable'
									[0]=TRUE [1]=2 [2]='Le fichier n\'est pas une image'
									[0]=TRUE [1]=3 [2]='Nom de fichier non valide'
									
									Je vous rappel que si vous désirer supprimer une photo en php c'est unlink($file); ! xD Petit truc de débutant.

  • /
function convertBytes( $value ) { if ( is_numeric( $value ) ) { return $value; } else { $value_length = strlen( $value ); $qty = substr( $value, 0, $value_length - 1 ); $unit = strtolower( substr( $value, $value_length - 1 ) ); switch ( $unit ) { case 'k': $qty *= 1024; break; case 'm': $qty *= 1048576; break; case 'g': $qty *= 1073741824; break; } return $qty; } } ?>

Conclusion :


Bonne chance !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
24 mars 2006

Tout à fait ce qu'il me fallait! Et en plus très bien expliqué! Mais y a t-il possibilitée d'augmenter la taille en Mo des photos telechargées?
Messages postés
28
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
27 juillet 2011

Bonjour, est ce que ce source redimensionne l'image avant l'upload ? merci
Messages postés
5
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
22 décembre 2010

Bonjour,

Pour les png, il faut peut être insérer entre les lignes 31 et 32 ce code

if ($type == 'png') {
imagealphablending($image_mini,false);
imagesavealpha($image_mini,true);
}

@+
Messages postés
5
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
22 décembre 2010

Ce script est pas mal du tout, mais petit probleme il ajoute un fond noir sur les png !! dommange
Messages postés
24
Date d'inscription
dimanche 9 décembre 2007
Statut
Membre
Dernière intervention
7 avril 2013

Non, j'ai même testé avec un chmod de 777.
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.