begin process at 2012 05 27 20:20:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > FONCTION PHP POUR REDIMENSIONNER UNE IMAGE ET UPLOADER DANS UN DOSSIER.

FONCTION PHP POUR REDIMENSIONNER UNE IMAGE ET UPLOADER DANS UN DOSSIER.


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :Fonction, Redimensionner, Image, Upload, Hauteur Niveau :Initié Date de création :03/10/2010 Date de mise à jour :03/10/2010 19:57:51 Vu / téléchargé :3 842 / 439

Auteur : GstJasmin

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 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

  • <?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;
  • }
  • }
  • ?>
<?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 !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

03 octobre 2010 09:14:11 :
Correctif
03 octobre 2010 18:32:39 :
Ajout d'un fichier example. Pour comment l'utiliser.
03 octobre 2010 19:50:03 :
Correction au code Example et Fonction.
03 octobre 2010 19:53:28 :
Dernier changement
03 octobre 2010 19:57:51 :
Petit changement

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES par cod57
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
UPLOAD IMAGE AVEC MINIATURE par dilar
SNIPPET : REDIMENSIONNER UN IMAGE SANS UTILISER LA BIBLIO GD par masternico
REDIMENSIONNER UNE IMAGE EN PHP par digitaldax

Commentaires et avis

Commentaire de antoine37120 le 03/10/2010 18:53:36

Bonjour,
Merci pour cette source. Cependant une erreur est présente à la ligne 26.
La variable "$donnees" utilisée dans la condition n'existe pas. Si j'ai bien compris, le nom de celle ci doit être "$OriSize".

Bonne continuation!


Commentaire de GstJasmin le 03/10/2010 19:39:29

Oui merci du commentaire je suis justement entrain de finaliser mon example ! Désoler pour les erreurs sa devrais pas étre trops long a changer !

Commentaire de GstJasmin le 03/10/2010 19:59:33

Voila j'ai fait les changements ! Bon codage !

Commentaire de rayman223 le 30/10/2010 18:06:05

Sympa comme source :)
Mais j'ai quand même un petit soucis. le script plante juste après :
// Vérifie le types (JPG,GIF,PNG) FINALISATION...///////////

J'ai ceci comme message d'erreur :
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'images/tuto/adopt_firefox.jpg' for writing


Et aussi, si j'ai une image plus petite que les dimensions pour la miniature, il y a une erreur.

Commentaire de GstJasmin le 03/11/2010 00:35:55

Vérifie les paramétres d'écriture de ton dossier tuto/

Commentaire de rayman223 le 03/11/2010 09:48:00

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

Commentaire de jeanbon59 le 22/12/2010 14:25:48 8/10

Ce script est pas mal du tout, mais petit probleme il ajoute un fond noir sur les png !! dommange

Commentaire de antoine37120 le 22/12/2010 22:17:51

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);
}

@+

Commentaire de Matyouz le 11/08/2011 20:49:48

Bonjour, est ce que ce source redimensionne l'image avant l'upload ? merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Redimensionner une image en fonction de sa taille [ par Dexterage ] Bonjour, J'ai un petit probleme, d'ou ma venu ici :) Je cr&#233;e une gallerie d'image en php, donc la taille des images sont fixes, et losque je le Redimensionner des images lors de l'upload [ par Drazounet ] Hello &#224; tous, Je commence &#224; manipuler des images pour la premi&#232;re fois, et je trouve que c'est assez complexe... J'ai beaucoup cherch Gros problème d'upload d'image...encore un [ par kenru ] Bonjour &#224; tous, voil&#224; j'ai un petit souci pour un upload d'image.//Fonction d'upload$nom_fichier = $_FILES['userfile']['name'];$tmp_fichier redimensionner une photo lrs de l'upload [ par boubeuch1 ] Bonjour, Je souhaiterais faire en sorte que quelque soit la taille de l'image d'origine, lorsqu'elle est téléchargé sur le serveur, celle-ci est redi Formulaire avec image___ upload sur le site et raccourci dans la base [ par bidbidon ] Bonjour, je suis novice en php!!! J'arrive à transferer toutes [u]les données écrites[/u] de mon formulaire sur ma base!!! Mais j'ai ajouter un <inp Fonction D'upload en PHP [ par olst59 ] Bonjour a tous, Je me permet de poster un message dans ce forum car je deviens fou... voici maintenant quelques jours que je cherche une explication Détruire une image après sont upload [ par spike911 ] bonjour, Je me suis créer un petit système d'upload d'imges pour un projet web. Une basse de donnée stock la liste complète des images avec leur noms upload d'une image pour un article [ par mathieuweb86 ] Bonjour, à tous je recherche à réaliser un script qui va me permettre de upload une image sur mon serveur, mais cette image va être uploader pour sui Afficher une image en fonction d'un pourcentage [ par loupile ] Bonjour à tous, je m'explique alors voilà j'ai un album dans lequel j'ai une ou plusieurs images stockées dans une base de données. ces images dans fonction pour redimensionner des images de grande taille [ par oceanrider ] Bonjour à tous, Je me tourne vers vous car malgré mes recherches, je ne trouve pas de solution à mon problème. J'ai recours à une fonction pour redi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales