begin process at 2012 02 11 16:52:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > UPLOAD MULTIPLE IMAGE GIF/JPG/PNG AVEC ROTATION, MINIATURE GARDANT LES PROPORTIONS ET AJOUT D'UN COPYRIGHT

UPLOAD MULTIPLE IMAGE GIF/JPG/PNG AVEC ROTATION, MINIATURE GARDANT LES PROPORTIONS ET AJOUT D'UN COPYRIGHT


 Information sur la source

Note :
9,3 / 10 - par 20 personnes
9,30 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :upload, redimension, multiple, rotation, image Niveau :Débutant Date de création :16/05/2007 Date de mise à jour :19/04/2009 13:05:08 Vu / téléchargé :30 832 / 3 224

Auteur : D1stort1on

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

 Description

Alors voilà,

Maintenant que j'ai assez profité de toutes les astuces que fournis ce site, je me suis dit que je pouvais essayer d'aider les autres.

J'ai cherché pendant longtemps un upload bien expliqué, et pour finir je me le suis fait moi-même ;) en cherchant sur le site de php.net. De plus j'ai aussi fait en sorte qu'il redimensionne direct l'image comme désiré.

Dans le zip il y a 2 fichiers d'upload un permettant une miniature qui garde les proportions de l'originale et l'autre qui crée une miniature aux dimension données, déformant l'original.
J'y ai maintenant rajouté un fichier avec formulaire su rla page .php qui permet d'uploader plusieurs fichiers en une fois :D

Etant un programmeur amateur, je vous demanderai de bien vouloir être indulgents.

Source

  • index.php :
  • -----------
  • <html>
  • <head>
  • <title>Upload</title>
  • </head>
  • <body>
  • <form method="post" action="upload.php" enctype="multipart/form-data">
  • <?php
  • $nbr_champs = 10;
  • for($nbr=0;$nbr<$nbr_champs;$nbr++){
  • ?>
  • <?php echo $nbr; ?>. <input type="file" name="fichier_upload_<?php echo $nbr; ?>" id="fichier_upload_<?php echo $nbr; ?>"><br />
  • <select name="fichier_rotation_<?php echo $nbr; ?>">
  • <option>Pas de rotation</option>
  • <option value="90">90&deg; gauche</option>
  • <option value="270">90&deg; droite</option>
  • <option value="180">180&deg;</option>
  • </select>
  • <br />
  • <?php
  • }
  • ?>
  • <input type="submit" name="Submit" value="Uploader">
  • <input name="nbr_f" type="hidden" value="<?php echo $nbr_champs; ?>">
  • </form>
  • </body>
  • </html>
  • upload.php :
  • ---------------------------------------
  • <?php
  • // nombre de fichiers à uploader
  • $nbr_fichiers = $_POST['nbr_f'];
  • // boucle permettant d'uploader les fichiers un à un
  • for($nbr=0;$nbr<$nbr_fichiers;$nbr++){
  • // on récupère les infos du fichier à uploader
  • $fichier_temp = $_FILES['fichier_upload_'.$nbr]['tmp_name'];
  • $fichier_nom = $_FILES['fichier_upload_'.$nbr]['name'];
  • // on défini les dimensions et le type du fichier
  • list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);
  • // infos de contrôle du fichier
  • $fichier_poids_max = 500000;
  • $fichier_h_max = 1224;
  • $fichier_l_max = 1632;
  • // gestion du copyright
  • // 0 = pas de copyright
  • // 1 = ajout d'un copyright sur les images uploadées
  • // 2 = ajout d'un copyright sur les images uploadées
  • // mais tout en gardant une copie de l'image originale sans le copy.
  • $copyright = 2;
  • $opacite = 100;
  • // source du logo copyright
  • // ATTENTION si vous voulez utiliser un logo au format .jpg ou .png aucun soucis
  • // il suffit de remplacer imagecreatefromgif par imagecreatefromjpeg ou imagecreatefrompng
  • $copyright_logo = imagecreatefromgif('logo.gif');
  • // dossier de destination
  • $fichier_dossier = 'images/';
  • // extension du fichier
  • $fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);
  • // on renomme le fichier
  • $fichier_date = date("ymdhis");
  • $fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;
  • // on vérifie s'il y a bien un fichier à uploader
  • if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {
  • // on vérifie le poids du fichier
  • if (filesize($fichier_temp)<$fichier_poids_max) {
  • // types de fichiers autorises 1=gif / 2=jpg / 3=png
  • if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {
  • // on vérifie si l'image n'est pas trop grande
  • if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {
  • // si le fichier est ok, on l'upload sur le serveur
  • if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {
  • // on donne un acces total sur le fichier
  • chmod ($fichier_dossier.$fichier_n_nom, 0777);
  • /******************
  • rotation de l'image
  • ******************/
  • if (!empty($_POST['fichier_rotation_'.$nbr]) && is_numeric($_POST['fichier_rotation_'.$nbr])) {
  • $degre_rotation = $_POST['fichier_rotation_'.$nbr];
  • $image = getimagesize($fichier_dossier.$fichier_n_nom);
  • // création de l'image
  • if($fichier_type == "1") {
  • $source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
  • }
  • if($fichier_type == "2") {
  • $source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
  • }
  • if($fichier_type == "3") {
  • $source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
  • }
  • //rotation de l'image
  • $rotation = imagerotate($source,$degre_rotation,1);
  • //Le -1 permet de remplir les zones vides avec du transparent
  • // sauvegarde de l'image finale
  • if($fichier_type == "1") {
  • imagegif($rotation,$fichier_dossier.$fichier_n_nom);
  • }
  • if($fichier_type == "2") {
  • imagejpeg($rotation,$fichier_dossier.$fichier_n_nom);
  • }
  • if($fichier_type == "3") {
  • imagepng($rotation,$fichier_dossier.$fichier_n_nom);
  • }
  • if (($degre_rotation == '90') || ($degre_rotation == '270')) {
  • $n_larg = $fichier_haut;
  • $n_haut = $fichier_larg;
  • $fichier_larg = $n_larg;
  • $fichier_haut = $n_haut;
  • }
  • }
  • /*****************************
  • ajout d'un copyright sur les photos
  • *****************************/
  • if ($copyright == 0) {
  • // pas d'ajout de copyright
  • }
  • elseif ($copyright != 0) {
  • // source de la photo
  • if ($fichier_type===1) {
  • $copyright_photo = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
  • }
  • elseif ($fichier_type===2) {
  • $copyright_photo = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
  • }
  • else {
  • $copyright_photo = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
  • }
  • // on récupère les dimensions du logo et de la photo
  • $larg_logo = imagesx($copyright_logo);
  • $haut_logo = imagesy($copyright_logo);
  • $larg_photo = imagesx($copyright_photo);
  • $haut_photo = imagesy($copyright_photo);
  • // on calcule la position du logo, ici en bas à droite
  • $poslogo_x = $larg_photo - ($larg_logo + 5);
  • $poslogo_y = $haut_photo - ($haut_logo + 5);
  • // on colle le logo au dessus de l'image
  • imagecopymerge($copyright_photo, $copyright_logo, $poslogo_x, $poslogo_y, 0, 0, $larg_logo, $haut_logo, $opacite);
  • // si 1, on écrase l'image sans copyright
  • if ($copyright == 1) {
  • if ($fichier_type===1) {
  • imagegif($copyright_photo, $fichier_dossier.$fichier_n_nom);
  • }
  • elseif ($fichier_type===2) {
  • imagejpeg($copyright_photo, $fichier_dossier.$fichier_n_nom);
  • }
  • else {
  • imagepng($copyright_photo, $fichier_dossier.$fichier_n_nom);
  • }
  • }
  • // si 2, on crée une nouvelle image avec le copyright
  • else {
  • if ($fichier_type===1) {
  • imagegif($copyright_photo, $fichier_dossier.'c_'.$fichier_n_nom);
  • }
  • elseif ($fichier_type===2) {
  • imagejpeg($copyright_photo, $fichier_dossier.'c_'.$fichier_n_nom);
  • }
  • else {
  • imagepng($copyright_photo, $fichier_dossier.'c_'.$fichier_n_nom);
  • }
  • }
  • }
  • /********************
  • création de la miniature
  • ********************/
  • // dimension maximale largeur et hauteur comprise
  • $taille_max = 100;
  • // si le fichier est plus grand que $taille_max on le miniaturise
  • if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {
  • // définition des dimensions
  • if (($fichier_haut > $taille_max) && ($fichier_haut >> $fichier_larg)) {
  • $mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
  • $mini_larg = $taille_max;
  • }
  • else {
  • $mini_haut = $taille_max;
  • $mini_larg = $fichier_larg / ($fichier_haut / $taille_max);
  • }
  • // si le fichier est un .gif
  • if ($fichier_type === 1){
  • // definition de l'image dont on va faire une miniature
  • $fichier_source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
  • // on prépare le fichier miniature qui accueillera l'image réduite
  • $fichier_reduit = imagecreate($mini_larg, $mini_haut);
  • // fond blanc pour l'image
  • $fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);
  • // dimensions x et y à donner au fichier
  • $fichier_larg_red = imagesx($fichier_reduit);
  • $fichier_haut_red = imagesy($fichier_reduit);
  • // on rajoute un mini_ defant le nom du fichier
  • $nom_fichier_reduit = 'mini_'.$fichier_n_nom;
  • // on redimensionne l'image de base dans le fichier $fichier_reduit
  • imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
  • // on rend transparent le fond blanc
  • imagecolortransparent($fichier_reduit, $fond_blanc);
  • // crée le fichier réduit définitif
  • imagegif($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);
  • // on donne un acces total sur le fichier
  • chmod($fichier_dossier.$nom_fichier_reduit, 0777);
  • }
  • // si le fichier est un .jpg / .jpeg
  • if ($fichier_type===2){
  • // définition de la qualité
  • $qualite=80;
  • // definition de l'image dont on va faire une miniature
  • $fichier_source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
  • // on prépare le fichier miniature qui accueillera l'image réduite
  • $fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);
  • // dimensions x et y à donner au fichier
  • $fichier_larg_red = imagesx($fichier_reduit);
  • $fichier_haut_red = imagesy($fichier_reduit);
  • // on rajoute un mini_ defant le nom du fichier
  • $nom_fichier_reduit = 'mini_'.$fichier_n_nom;
  • // on redimensionne l'image de base dans le fichier $fichier_reduit
  • imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
  • // crée le fichier réduit définitif
  • imagejpeg($fichier_reduit, $fichier_dossier.$nom_fichier_reduit, $qualite);
  • // on donne un acces total sur le fichier
  • chmod($fichier_dossier.$nom_fichier_reduit, 0777);
  • }
  • // si le fichier est un .png
  • if ($fichier_type===3){
  • // definition de l'image dont on va faire une miniature
  • $fichier_source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
  • // on prépare le fichier miniature qui accueillera l'image réduite
  • $fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);
  • // dimensions x et y à donner au fichier
  • $fichier_larg_red = imagesx($fichier_reduit);
  • $fichier_haut_red = imagesy($fichier_reduit);
  • // on rajoute un mini_ defant le nom du fichier
  • $nom_fichier_reduit = 'mini_'.$fichier_n_nom;
  • // on redimensionne l'image de base dans le fichier $fichier_reduit
  • imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
  • // crée le fichier réduit définitif
  • imagepng($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);
  • // on donne un acces total sur le fichier
  • chmod($fichier_dossier.$nom_fichier_reduit, 0777);
  • }
  • // si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
  • }
  • else {
  • $nom_fichier_reduit = $fichier_n_nom;
  • }
  • /*************************************
  • enregistrement dans la base de données
  • nom du fichier non réduit :
  • ----------------------------------
  • $fichier_n_nom
  • nom du fichier réduit :
  • ----------------------------------
  • $nom_fichier_reduit
  • *************************************/
  • echo "Le fichier n°".$nbr." a été uploadé avec succès<br />";
  • }
  • else {
  • echo "Le fichier n°".$nbr." n'a pas pu être uploadé<br />";
  • }
  • }
  • else {
  • echo "Le fichier n°".$nbr." est trop grand<br />";
  • }
  • }
  • else {
  • echo "Le fichier n°".$nbr." n'a pas le bon format<br />";
  • }
  • }
  • else {
  • echo "Le fichier n°".$nbr." est trop lourd<br />";
  • }
  • }
  • else {
  • echo "Pas de fichier à uploader dans le champ n°".$nbr."<br />";
  • }
  • }
  • ?>
index.php :
-----------
<html>
<head>
<title>Upload</title>
</head>

<body>
<form method="post" action="upload.php" enctype="multipart/form-data">

<?php
$nbr_champs = 10;
for($nbr=0;$nbr<$nbr_champs;$nbr++){
?>

  <?php echo $nbr; ?>. <input type="file" name="fichier_upload_<?php echo $nbr; ?>" id="fichier_upload_<?php echo $nbr; ?>"><br />
  <select name="fichier_rotation_<?php echo $nbr; ?>">
    <option>Pas de rotation</option>
    <option value="90">90&deg; gauche</option>
    <option value="270">90&deg; droite</option>
    <option value="180">180&deg;</option>
  </select>
  <br />

<?php
}
?>

  <input type="submit" name="Submit" value="Uploader">
  <input name="nbr_f" type="hidden" value="<?php echo $nbr_champs; ?>">
</form>
</body>
</html>


upload.php :
---------------------------------------
<?php
// nombre de fichiers à uploader
$nbr_fichiers = $_POST['nbr_f'];

// boucle permettant d'uploader les fichiers un à un
for($nbr=0;$nbr<$nbr_fichiers;$nbr++){

// on récupère les infos du fichier à uploader
$fichier_temp = $_FILES['fichier_upload_'.$nbr]['tmp_name'];
$fichier_nom = $_FILES['fichier_upload_'.$nbr]['name'];

// on défini les dimensions et le type du fichier
list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);

// infos de contrôle du fichier
$fichier_poids_max = 500000;
$fichier_h_max = 1224;
$fichier_l_max = 1632;

// gestion du copyright
// 0 = pas de copyright
// 1 = ajout d'un copyright sur les images uploadées
// 2 = ajout d'un copyright sur les images uploadées
//     mais tout en gardant une copie de l'image originale sans le copy.
$copyright = 2;
$opacite = 100;

// source du logo copyright
// ATTENTION si vous voulez utiliser un logo au format .jpg ou .png aucun soucis
// il suffit de remplacer imagecreatefromgif par imagecreatefromjpeg ou imagecreatefrompng
$copyright_logo = imagecreatefromgif('logo.gif');

// dossier de destination
$fichier_dossier = 'images/';

// extension du fichier
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);

// on renomme le fichier
$fichier_date = date("ymdhis");
$fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;

	// on vérifie s'il y a bien un fichier à uploader
	if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {
	
		// on vérifie le poids du fichier
		if (filesize($fichier_temp)<$fichier_poids_max) {
		
			// types de fichiers autorises 1=gif / 2=jpg / 3=png
			if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {
			
				// on vérifie si l'image n'est pas trop grande
				if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {
				
					// si le fichier est ok, on l'upload sur le serveur
					if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {
					
						// on donne un acces total sur le fichier
						chmod ($fichier_dossier.$fichier_n_nom, 0777);
						
							/******************
							rotation de l'image
							******************/							
							
							if (!empty($_POST['fichier_rotation_'.$nbr]) && is_numeric($_POST['fichier_rotation_'.$nbr])) {
							
								$degre_rotation = $_POST['fichier_rotation_'.$nbr];
								
								$image = getimagesize($fichier_dossier.$fichier_n_nom);
								// création de l'image
								if($fichier_type == "1") {
								$source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
								}
								if($fichier_type == "2") {
								$source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
								}
								if($fichier_type == "3") {
								$source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
								}
								//rotation de l'image
								$rotation = imagerotate($source,$degre_rotation,1);
								//Le -1 permet de remplir les zones vides avec du transparent
								// sauvegarde de l'image finale
								if($fichier_type == "1") {
								imagegif($rotation,$fichier_dossier.$fichier_n_nom);
								}
								if($fichier_type == "2") {
								imagejpeg($rotation,$fichier_dossier.$fichier_n_nom);
								}
								if($fichier_type == "3") {
								imagepng($rotation,$fichier_dossier.$fichier_n_nom);
								}
								
									if (($degre_rotation == '90') || ($degre_rotation == '270')) {
									
										$n_larg = $fichier_haut;
										$n_haut = $fichier_larg;
										
										$fichier_larg = $n_larg;
										$fichier_haut = $n_haut;
										
									}	
							}
							
							/*****************************
							ajout d'un copyright sur les photos
							*****************************/
							  
							  if ($copyright == 0) {
								// pas d'ajout de copyright
							  }
							  elseif ($copyright != 0) {
								
								// source de la photo
								if ($fichier_type===1) {
								$copyright_photo = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
								}
								elseif ($fichier_type===2) {
								$copyright_photo = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
								}
								else {
								$copyright_photo = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
								}
								
								// on récupère les dimensions du logo et de la photo
								$larg_logo = imagesx($copyright_logo);
								$haut_logo = imagesy($copyright_logo);
								$larg_photo = imagesx($copyright_photo);
								$haut_photo = imagesy($copyright_photo);
								
								// on calcule la position du logo, ici en bas à droite
								$poslogo_x = $larg_photo - ($larg_logo + 5);
								$poslogo_y = $haut_photo - ($haut_logo + 5);
								
								// on colle le logo au dessus de l'image
								imagecopymerge($copyright_photo, $copyright_logo, $poslogo_x, $poslogo_y, 0, 0, $larg_logo, $haut_logo, $opacite);
								
									// si 1, on écrase l'image sans copyright
									if ($copyright == 1) { 
										if ($fichier_type===1) {
										imagegif($copyright_photo, $fichier_dossier.$fichier_n_nom);
										}
										elseif ($fichier_type===2) {
										imagejpeg($copyright_photo, $fichier_dossier.$fichier_n_nom);
										}
										else {
										imagepng($copyright_photo, $fichier_dossier.$fichier_n_nom);
										}
									}
									// si 2, on crée une nouvelle image avec le copyright
									else {
										if ($fichier_type===1) {
										imagegif($copyright_photo, $fichier_dossier.'c_'.$fichier_n_nom);
										}
										elseif ($fichier_type===2) {
										imagejpeg($copyright_photo, $fichier_dossier.'c_'.$fichier_n_nom);
										}
										else {
										imagepng($copyright_photo, $fichier_dossier.'c_'.$fichier_n_nom);
										}
									}
							  }
							
							/********************
							création de la miniature
							********************/
							
							// dimension maximale largeur et hauteur comprise
							$taille_max = 100;
							
							// si le fichier est plus grand que $taille_max on le miniaturise
							if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {
								
								// définition des dimensions 
								if (($fichier_haut > $taille_max) && ($fichier_haut >> $fichier_larg)) {
								
								$mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
								$mini_larg = $taille_max;
								
								}
								
								else {
								
								$mini_haut = $taille_max;
								$mini_larg = $fichier_larg / ($fichier_haut / $taille_max);
								
								}
								
								// si le fichier est un .gif
								if ($fichier_type === 1){
								
								// definition de l'image dont on va faire une miniature
								$fichier_source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
								
								// on prépare le fichier miniature qui accueillera l'image réduite
								$fichier_reduit = imagecreate($mini_larg, $mini_haut);
								
								// fond blanc pour l'image
								$fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);
								
								// dimensions x et y à donner au fichier
								$fichier_larg_red = imagesx($fichier_reduit);
								$fichier_haut_red = imagesy($fichier_reduit);
								
								// on rajoute un mini_ defant le nom du fichier
								$nom_fichier_reduit = 'mini_'.$fichier_n_nom;
								
								// on redimensionne l'image de base dans le fichier $fichier_reduit
								imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
								
								// on rend transparent le fond blanc
								imagecolortransparent($fichier_reduit, $fond_blanc);
								
								// crée le fichier réduit définitif
								imagegif($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);
								
								// on donne un acces total sur le fichier
								chmod($fichier_dossier.$nom_fichier_reduit, 0777);
								
								}
								
								// si le fichier est un .jpg / .jpeg
								if ($fichier_type===2){
								
								// définition de la qualité
								$qualite=80;
								
								// definition de l'image dont on va faire une miniature
								$fichier_source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
								
								// on prépare le fichier miniature qui accueillera l'image réduite	
								$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);
								
								// dimensions x et y à donner au fichier
								$fichier_larg_red = imagesx($fichier_reduit);
								$fichier_haut_red = imagesy($fichier_reduit);
								
								// on rajoute un mini_ defant le nom du fichier
								$nom_fichier_reduit = 'mini_'.$fichier_n_nom;
								
								// on redimensionne l'image de base dans le fichier $fichier_reduit
								imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
								
								// crée le fichier réduit définitif
								imagejpeg($fichier_reduit, $fichier_dossier.$nom_fichier_reduit, $qualite);
								
								// on donne un acces total sur le fichier
								chmod($fichier_dossier.$nom_fichier_reduit, 0777);
								
								}
								
								// si le fichier est un .png
								if ($fichier_type===3){
								
								// definition de l'image dont on va faire une miniature
								$fichier_source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
								
								// on prépare le fichier miniature qui accueillera l'image réduite
								$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);
								
								// dimensions x et y à donner au fichier
								$fichier_larg_red = imagesx($fichier_reduit);
								$fichier_haut_red = imagesy($fichier_reduit);
								
								// on rajoute un mini_ defant le nom du fichier
								$nom_fichier_reduit = 'mini_'.$fichier_n_nom;
								
								// on redimensionne l'image de base dans le fichier $fichier_reduit
								imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
								
								// crée le fichier réduit définitif
								imagepng($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);
								
								// on donne un acces total sur le fichier
								chmod($fichier_dossier.$nom_fichier_reduit, 0777);
								
								}
						
							// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
							}
							else {
							$nom_fichier_reduit = $fichier_n_nom;
							}
								
								/*************************************
								enregistrement dans la base de données
								
								nom du fichier non réduit :
								----------------------------------
								$fichier_n_nom
								
								nom du fichier réduit :
								----------------------------------
								$nom_fichier_reduit
								*************************************/
								
							echo "Le fichier n°".$nbr." a été uploadé avec succès<br />";
					
					}
					else {
						echo "Le fichier n°".$nbr." n'a pas pu être uploadé<br />";
					}
				
				}
				else {
					echo "Le fichier n°".$nbr." est trop grand<br />";
				}
			
			}
			else {
				echo "Le fichier n°".$nbr." n'a pas le bon format<br />";
			}
		
		}
		else {
			echo "Le fichier n°".$nbr." est trop lourd<br />";
		}
	
	}
	else {
		echo "Pas de fichier à uploader dans le champ n°".$nbr."<br />";
	}

}	
?>

 Conclusion

J'ai réussi à modifier de façon à pouvoir uploader plusieurs fichiers, comme on dit, quand on cherche on trouve :D

Good bye all, et merci.

 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

24 mai 2007 12:10:40 :
Modification du code pour un upload multiple d'images, ainsi que remise à jour du .zip ;)
09 mars 2008 11:38:26 :
Ajout de la possibilité de tourner l'image lors de l'upload, et bien entendu la miniature par la même occasion ;)
19 avril 2009 13:02:42 :
Ajout de la possibilité d'ajouter un copyright (logo) sur chaque image.
19 avril 2009 13:05:08 :
Ajout de la possibilité d'ajouter un copyright (logo) sur chaque image.

 Sources de la même categorie

Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette

 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
Source avec Zip FONCTION PHP POUR REDIMENSIONNER UNE IMAGE ET UPLOADER DANS ... par GstJasmin
Source avec Zip Source avec une capture UTILISATION DU COMPOSANT MULTIPOWUPLOAD par crazygogo

Commentaires et avis

Commentaire de bluedemon le 16/05/2007 19:27:27

Pas mal, au moins je n'ai pas le miens a mettre lol, on me l'avait demandé mais pas eu le temps :-s.

Commentaire de lordbdp le 25/05/2007 22:31:11

Dés que j'aurais un mpoment je testerai mais cela semble très prometteur ;o)

Bravo !

Commentaire de Sokaardotbe le 31/05/2007 00:55:27

Félicitation pour le script, je viens de le tester et il fonctionne très bien :)

Commentaire de D1stort1on le 06/06/2007 22:53:03

Je ne sais pas qui peut noter les sources, mais ca fait vraiment pitié de voir qu'on mette 1 et qu'on ne soit pas capable de justifier, si un travail fourni aux autres, sans prétention mais qui aide les gens c'est déja bien. Au moins nous dire ce qui cloche et qui mérite une note pareille...

En tout cas c drôlement petit.

Commentaire de fedebul le 08/06/2007 10:46:57

bonjour , bonjour j'ai essayé l'upload C excellent, bravo ! je voudrais faire un sous repertoire pour les miniatures , pour separer les images de base puis celles reduites .je ne sais pas où je pourrais ecrire cela ds le code !! si qq'un peut m'aider !! merci

Commentaire de Sokaardotbe le 08/06/2007 19:15:39

Je travaille en POO et j'ai donc transformé mis ton code dans une classe PHP5.
Si vous la voulez faite signe :)

Commentaire de D1stort1on le 08/06/2007 19:21:31

http://www.berguerand.ch/index_unique_mini_sous_dossier.zip

Voilà le lien pour télécharger la source avec les mini qui s'enregistrent dans un sous-dossier :D

Commentaire de fedebul le 09/06/2007 11:04:08

merci beaucoup encore !!

Commentaire de monoar le 09/06/2007 14:11:15

Super, exactement ce qu'il me fallait.
Merci

Commentaire de saffff le 22/06/2007 17:22:41

Salut, je vous félicite pour ce code.
Je débute!
Ma question est à propos de l'enregistrement dans la base de donner, la connexion à cette base.
J'ouvre les fichiers PHP(avec DREAMWEAVER) que vous avez déposer à télécharger,
je reçois un message dans la fenêtre Propriétés en bas:
--> ? Server Markup
Si vous pouvez m'aider, à mieux comprendre ce problème  vous me fournires vraiment une aide précieuse.
Merci d'avance.

Commentaire de RaniveR le 11/07/2007 18:55:37

salut !!

n'y connaissant rien en programmation, ton script est intéressant, mais il n'y a-t-il pas un moyen d'afficher la ou les images en fin d'upload ?

Merci d'avance

Commentaire de Vigasse le 12/07/2007 16:59:17

po mall jais notter 10/10

je  viens de le triester et de le modifier pour Uploader des fichier en tout genres mais ben c cool merci

Commentaire de D1stort1on le 12/07/2007 20:24:58

@ RaniveR

pour afficher les images uploadées, remplace le echo qui dit que le fichier est uploadé avec succès par cette ligne :

echo '<a href="'.$fichier_dossier.$fichier_n_nom.'"><img src="'.$fichier_dossier.$nom_fichier_reduit.'"></a><br />';

Tcho

Commentaire de D1stort1on le 12/07/2007 20:36:51

@ saffff

Le code que je mets à disposition n'a rien pour ajouter les images dans la bdd, si c'est ce que tu veux faire :

crée un fichier connection.php :
-----------------------------------------
<?
$host = "tes infos ici";
$user = "tes infos ici";
$pass = "tes infos ici";
$bdd = "tes infos ici";

$conn = @mysql_connect($host,$user,$pass)
   or die("Impossible de se connecter");
@mysql_select_db($bdd)
   or die("Impossible de se connecter à la base");
?>



et en suite sur la page upload_mini_proportionnee.php la ou se trouve le commentaire parlant des infos pour la base de donnée tu peux ajouter cela :
-----------------------------------------
include ('connection.php');
$table = 'nom_de_ta_table';
$champ_nom_grande = 'nom_de_ton_champ';
$champ_nom_petite = 'nom_de_ton_champ';


$query = sprintf("INSERT INTO $table ($champ_nom_grande, $champ_nom_petite)"
." VALUES('$fichier_n_nom', '$nom_fichier_reduit')");

$result = mysql_query($query) or die(mysql_error());

mysql_close($conn);

Commentaire de RaniveR le 13/07/2007 16:20:52

Merci a toi D1stort1on !

encore une ch'tite question

lorsque les images sont uploadées, y a t'il possibilité de voir le contenu du dossier images/
pas seulement pour y voir  les derniere (comme demandé précédement) mais toutes les photo uploadées.

Commentaire de RaniveR le 13/07/2007 16:49:15

oups encore moi :s

j'arrive pas a faire le truc pour mettre le mini dans le dossier a part :(

faut en faire quoi exactement du fichier "index_unique_mini_sous_dossier.php"

encore toutes mes excuses pour le dérangement

Commentaire de yoyomb le 23/08/2007 19:42:48

Félicitations pour ce code. Simple mais efficace.
Quel est le poids maximum d'une image que l'on peut uploader ?
En effet, la plupart des images issus d'appareils photos numériques dépasse largement les 2 Mo, et apparemment, même après changement des valeurs $fichier_poids_max on arrive pas à uploader plus de 900 Ko ?

Merci.

Commentaire de D1stort1on le 28/08/2007 06:21:20

Voilà voilà, j'ai fait un peu de nettoyage sur mon serveur, je vous re-donne le lien pour télécharger le zip de l'upload aved les mini dans un sous-dossier :
http://www.berguerand.ch/fichiers/index_unique_mini_sous_dossier.zip

Byebye

Commentaire de fedebul le 02/09/2007 11:35:09

BONJOUR a vous !  D1stort1on . suite a ton message du 12/07 , j'ai un petit souci pour créer la base de données !
si tu pouvais m'aider !
merci
laurent

Commentaire de sylr109 le 05/09/2007 13:18:12

Salut et un grand merci pour ton code d'une grande qualité et utillité.

Voilà je voudrais savoir si il est possible d'afficher une fois arriver sur la page qui affiche la miniature un code avec la miniature et l'url vers l'image en high résolution pour pouvoir l'affiche un forum.

Merci

Commentaire de flasheurflasheuse le 06/09/2007 15:24:17

Slt. Super sympa ce script.

Il est vrai que cela serait pas mal de pouvoir visualiser les miniatures des images déjà présentes dans le répertoire à tout moment et de pouvoir les supprimer ou modifier.

Avis aux scripteurs ^^

En tout cas merci

Commentaire de D1stort1on le 20/09/2007 12:15:29

Saluti,

Me suis apperçu que lors de la redimension des photos, une photo plus large que haute ne se modifiait pas correctement, j'ai résolu mon soucis qui était du à un mauvais calcul...

//si plus haut que large
if ($fichier_haut > $fichier_larg) {

$mini_haut = $taille_max;
$mini_larg = $fichier_larg / ($fichier_haut / $taille_max);

}

//si plus large que haut
else {

$mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
$mini_larg = $taille_max;

}


@ fedebul :
----------

Désolé pour le temps de réponse mais j'étais en vacances, pour ajouter l'image donnée dans la bdd voilà une possibilité :

$table = 'b_photos';
$champ_cat = 'cat';
$champ_nom_g = 'nom_g';
$champ_nom_p = 'nom_p';
$champ_date = 'date';
$champ_membre = 'membre';

$f_cat = $_POST['f_cat'];
$f_nom_g = $fichier_n_nom;
$f_nom_p = $nom_fichier_reduit;
$f_date = date("d/m/Y");
$f_membre = $_SESSION['pseudo'];

$query = sprintf("INSERT INTO $table ($champ_cat, $champ_nom_g, $champ_nom_p, $champ_date, $champ_membre)"
." VALUES ('$f_cat', '$f_nom_g', '$f_nom_p', '$f_date', '$f_membre')");
$result = mysql_query($query) or die(mysql_error());


Byebye, n'hésite pas à me recontacter si tu as un autre soucis.

Commentaire de fedebul le 23/09/2007 09:08:27

merci beaucoup , vais essayer tout ca ! a tres bientot !

Commentaire de lolowar le 24/09/2007 20:20:04

Salut   et merci pour cette source que j'aurai été incapable de faire!
J'avais fait un petit script pour ça, mais rien à voir avec celui là (bon je débute...).
En revanche peux tu éclairer ma lanterne:
J'ai essayé la version multi avec le rajout de la base de donnée que tu note plus haut dans les commentaires.
Mon problème est que ça me renvoi ça:
Fatal error: Call to undefined function: imagecreatefromjpeg() à la ligne 149.
Du coup je ne sais pas si il fallait définir la fonction avant ou pas... De même pour les lignes suivantes avec "imagesx" "imagesy", faut-il laisser cela comme tu l'as fait ou faut-il leur donner une valeur?
Désolé pour le dérangement puisque je suis le seul qui apparement n'a pas compris!
Lolo

Commentaire de lolowar le 25/09/2007 10:12:15 10/10

Ouppppssss...
Désolé d'avoir mis le commentaire précédent un peu trop rapidement, je ne connaissais pas encore les fonctions php. Du coup j'ai écris avant de faire des recherches... désolé...
Si quelqu'un a le meme problème, sous easyphp il suffit de cliquer sur Configuration > Extensions PHP > cocher php_gd2.
Ca marche au top avec une base de donnée, un grand grand merci!

Commentaire de wewewe le 07/11/2007 20:42:41

http://www.berguerand.ch/fichiers/index_unique_mini_sous_dossier.zip

ce lien functionne plus quelqun a un autres lien ?

Commentaire de kapola le 23/11/2007 22:29:30

eu, pour ma part, je ne sais absolument pas pas comment l'utiliser, je ne suis que bon pour le disign ^^et non pour le php qui m'agace fortement :p, alors pourrait tu m'indiquer comment utiliser ton script. ( je te met 9/10 pour le manque d'explication à l'usage ;)).

Commentaire de lolowar le 24/11/2007 18:18:45

Manque d'explications???
Tout est soit dans le script, soit en réponse aux commentaires écris plus haut.
Le script est excellent et l'auteur a répondu à quasiment toutes les questions qui lui ont été posée.
Comme tel il s'utilise sans BBD, pour la version avec BBD ça se passe sur la réponse du 12/07/07, avec un correctif le 20/09/07.

Commentaire de D1stort1on le 24/11/2007 18:52:26

Héhé, merci pour le soutien, le 9/10 me comble déjà héhé, j'ai pas mal bossé sur mon code et vais le remettre à jour, surtout au niveau du fichier .zip

Soyez patients... ;)

De plus je vais répondre à toutes les questions, now j'ai plus de temps libre, à bientôt

Commentaire de kapola le 24/11/2007 18:57:55

LOLOWAR,
Je répond à ton étonement, je n'est pas di cela méchament... Mais di toi que tu ne connais rien au php... Alors comment fais-tu ? Voilà j'ai vu des script pourri mais bie expliqués.
ps: pour tout vous dire j'ai quand même des bases en php.
Cordialement.

Commentaire de lolowar le 24/11/2007 19:26:42

Mais non non Kapola, il n'y avait rien de méchant. J'étais moi aussi débutant quand j'ai découvert ce script (là je commence à m'en sortir à force).
Mais justement, meme en temps que débutant je le trouvais super bien expliqué.
Chaque action d'une ligne de code est expliquée en clair.
Aprés pour les fonctions que je ne connaissais pas je les cherchais indépendament sur le net.
Le script se décompose en trois partie, une qui boucle les fichier à envoyer, une qui traite les fichiers (redimmensionne) et la dernière qui t'informe de l'évolution du traitement.
Si tu décompose chaque partie en cherchant les fonctions à coté tu devrais t'en sortir facilement.
Au pire en le recopiant tel quel tu n'as que la première partie (ligne 1 à 56, html et php) à modifier pour l'adapter, le reste pas besoin d'y toucher.
Bonne soirée ;-)

Commentaire de franckfieldd le 24/11/2007 19:45:22 10/10

Idem que lolowar, je trouve vraiment ce code nickel et fonctionne du premier coup, pour moi il serait parfait, si on avait la possibilitée d'enregistrer le nom des fichiers sur un même champ de table dans une base de donnée.  

Commentaire de j0li le 30/12/2007 04:54:45

Oui vraiment très bien.
Juste un petie regret que l'on ne peut pas configurer une largeur et une hauteur maximum afin de créer des miniature rectangulaire proportionnées...

Commentaire de esyounes le 25/02/2008 14:44:53

salut,
jai tester le code, mais il me donne l'erreur suivante:

Warning: move_uploaded_file(images/080225013303.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\upload_mini_proportionnee.php on line 39

Warning: move_uploaded_file(): Unable to move 'C:/Program Files/EasyPHP1-8\tmp\phpA2.tmp' to 'images/080225013303.jpg' in c:\program files\easyphp1-8\www\upload_mini_proportionnee.php on line 39
Le fichier n'a pas pu être uploadé

kelk1 px m'aider ??

Commentaire de phineau17 le 01/03/2008 10:56:47 10/10

Ce script et super et je l'utilise sur tous mes sites > bravo et encore merci pour le temps gagné.

J'ai juste un petit souci que je n'arrive pas à résoudre car pas vraiment connaisseur en développement : si quelqu'un peut m'aider à résoudre mon pb ?

Mon pb est le suivant : je souhaiterai que l'image uploadée soit elle aussi diminuer en taille (par exemple définir une largeur maxi de 600) avec biensûr conservation des proportions de l'image sans rien changer à la création de la miniature qui est super.
Remarque : Je pourrais obliger l'internaute à faire cela avant envoi de son formulaire mais plein d'internautes ne savent pas faire cette manip donc je souhaite que mon serveur le fasse pour eux quelque soit la taille de l'image envoyée.

Merci de m'aider parce que là je calle !    :)

Commentaire de sebvcx le 08/03/2008 21:17:30 9/10

Ce script est vraiment bien, je vais essayer de l'intégrer à un script de news.
Juste un petit truc c'est que la qualité de l'image réduite est vraiment mauvaise pour les gif
Existe t-il une solution a ce problème ?
Merci encore
Génial

Commentaire de jboyjboy le 21/05/2008 20:25:46

Quelqu'un aurait une réponse à la question de phineau17 (à la date du 01/03/2008).

Commentaire de cw75116 le 30/10/2008 12:17:58 10/10

Juste un grand merci pour ce code très clair, et facile a modifier.
:)

Commentaire de cw75116 le 30/10/2008 12:54:12

a JBOYJBOY

Pour redimentioner la photo il faut rajouter ça APRES la création des miniatures

                                                      /***********************
REDIM
***********************/

// dimension maximale largeur et hauteur comprise
$taille_max = 540;


// si le fichier est plus grand que $taille_max on le miniaturise
if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {

// définition des dimensions
if ($fichier_haut > $fichier_larg){

$mini_haut = $taille_max;
$mini_larg = $fichier_larg / ($fichier_haut / $taille_max);

}
//si plus large que haut
else {

$mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
$mini_larg = $taille_max;

}
// si le fichier est un .jpg / .jpeg

// définition de la qualité
$qualite=80;

// definition de l'image dont on va faire une miniature

$fichier_source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);

// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);

// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);

// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = $fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

// crée le fichier réduit définitif
imagejpeg($fichier_reduit, $fichier_dossier.$nom_fichier_reduit, $qualite);

// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduit, 0777);
}

D'bord tu upload sur le serveur la photo, puis ca crée la miniature, et redimentionne l'original.
Il faut bien veiller a mettre ce code APRES la miniature, sinon la miniature va être mauvaise.

Commentaire de piloux71 le 06/11/2008 16:28:52 10/10

Bonjour, bravo pour ce script , très bien commenté j' ai facilement réussi à l' adapter ; encore merci!

Commentaire de caviar le 30/11/2008 01:35:08

saluté, merci pour le script ça m'a servi aussi :)
au passage pour ceux que ça intéresse j'ai mis en ligne un petit script d'upload multiple sur ce site http://www.nasuploader.com
ça peut servir de base pour un traitement en php comme celui ci derrière par exemple
@++

Commentaire de fedebul le 25/01/2009 17:45:28

bonjour, merci encore pour le script mais Côté serveur dans le dossier images, il me crée des fichiers sans le nom de la photo et avec des choses comme ça :

0_090125053606.png
mini_0_090125053606.png

comment peut on faire pour qu'il garde le même nom de la photo qu'à l'origine ?

merci beaucoup
laurent

Commentaire de D1stort1on le 27/01/2009 19:45:49

Salut,

Alors le nom original de ton image est dans la variable $fichier_nom, si tu veux que le nom contienne la designation originale, remplace à la ligne 65 :

$fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;

par

$fichier_n_nom = $nbr."_".$fichier_nom.".".$fichier_ext;


La variable $nbr permet de rajouter le numéro de champ au nom de fichier, car j'ai eu parfois, lors d'upload de petits fichiers qui s'uplodaient dans la meme seconce, que l'image soit écrasée par la suivante. Tu peux aussi laisser la date et ajouter le nom original de cette manière :

$fichier_n_nom = $nbr."_".$fichier_date."_".$fichier_nom.".".$fichier_ext;

J'ai pas testé, j'espère que ca fonctionnera.

@plus

Commentaire de fedebul le 27/01/2009 19:57:03

merci à toi et encore bravouche !!
lolo

Commentaire de phineau17 le 28/01/2009 00:33:38

Grand merci à JBOYJBOY
pour son excellente réponse à mon problème de dimensionnement de la photo d'origine !  

C'est tip top

Commentaire de daddy11world le 08/02/2009 11:29:49

MERCI :)

Commentaire de loran86 le 26/03/2009 16:10:02 8/10

Excellent script, permet une très bonne base pour des développements additionnels tels la création automatique d'un répertoire principal Images qui contient les grandes images et l'écriture automatique du sous-répertoire de votre choix (thumbs par exemple) qui contient les miniatures...
Coupler le tout à 2 bdd (users et photos_users par exemple), enregistrer les données et zou le tour est joué !
Attention toutefois à ne pas oublier de donner les autorisations de suppression sur les répertoires créés, faute de quoi vous ne pourrez pas les effacer du serveur ;o)

Une tite portion du script final :

//Création du répertoire IMAGES principal du membre sur le serveur
$dos_membre = preg_replace("#([^a-zA-Z0-9]+)#", "", $_POST['pseudo_membre']).'_'.rand();
$dos_destinataire = '/votre_chemin_absolu/'.$dos_membre.'/';
@mkdir($dos_destinataire);
//Création du sous-répertoire THUMBS qui contiendra les miniatures liées aux photos principales du membre
$dos_th_membre = 'thumbs'; //par exemple
$dos_dest_th = '/votre_chemin_absolu/'.$dos_membre.'/'.$dos_th_membre.'/';
@mkdir($dos_dest_th);

puis plus bas :

// dossier de destination - enlever le 1er slash si echec
$fichier_dossier = '/votre_chemin_absolu/'.$dos_membre.'/';
chmod($fichier_dossier, 0777);
$fichier_dossier_mini = '/votre_chemin_absolu/'.$dos_membre.'/'.$dos_th_membre.'/';
chmod($fichier_dossier_mini, 0777);

et hop ça roule ! :o)

Un grand bravo à l'auteur pour la qualité de son travail et le sérieux de son suivi...

A signaler une petite erreur (ou pas, ça dépend de ce que l'on veut farie) dans le code donné par JBOYJBOY, à la ligne :

// on rajoute un mini_ defant le nom du fichier
nom_fichier_reduit = $fichier_n_nom;

j'ai personnellement corrigé ainsi :

// on rajoute un mini_ defant le nom du fichier
$fichier_n_nom = $fichier_n_nom;

Pourquoi ? Tout simplement parce que pendant mes tests avec cette méthode supplémentaire donnée par JBOYJBOY, ça me créait la miniature dans le rep 'thumbs', la photo redimensionnée en 540 (selon les paramètres d'origine donnés par JBOYJBOY) MAIS ça m'uploadait également le fichier original non redimensionné et qui m'est tout à fait inutile.
Après, comme dit, ce plus (ou erreur) peut avoir son utilité en fonction de l'appli finale.

Sur ce, bon code, l'implantation continue !
Merci
Laurent

Commentaire de D1stort1on le 05/04/2009 10:56:21

@Loran86
Merci pour le commentaire. En postant mon code je ne pensais pas qu'il serait autant apprécié. Je ne suis qu'un amateur, qui aime bien bidouiller en php. Et effectivement, une fois couplé à une gestion de base de données, le script devient super utile et est facile à adapter à plusieurs types d'utilisations.

Je n'ai mis a disposition que l'upload. Si ça peut intéresser, je mets assez volontier le code complet a télécharger sur mon site ;)

Merci pour les encouragements.
@+++++++++++

Commentaire de matthieugoua le 22/05/2009 19:46:09

Salut a toi d1stort1on très bon script, j'aurais juste une demande serait il possible d'y rajouter un moyen de remplacer les caractères spéciaux lors de l'upload dans le style

function filter($in) {
$search = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9.-]@');
$replace = array ('e','a','i','u','o','c','-','');
return preg_replace($search, $replace, $in);
}

j'ai essayé mais étant encore plus amateur que toi je ne m'en sort pas

Merci d'avance

Commentaire de ines57 le 27/05/2009 15:11:10

Salut,

Ton script fonctionne à merveille, par contre j'ai un soucis, je n'arrive pas à enregistrer le nom de l'image dans la base de données. Je me suis servie de ce que tu as donné, mais je n'ai pas les mêmes champs et j'ai pas réussi à l'adapter.

Pourrais-tu m'aider stp?

Commentaire de D1stort1on le 27/05/2009 17:46:57

Ciao,

mon exemple était un peu fait à la va-vite ;)

Pour ce qui est de l'enregistrement du nom de fichier dans la base de données dans ta requète, dans la valeur qui correspond à ton champs tu mets "$nom_fichier_reduit" pour la petite et $fichier_n_nom pour la grande image me semble-t-il (je l'utilise de plusieurs façon sur mes différents sites donc je m'embrouille parfois).

Si non montre-moi la structure de ta table et le code que tu as utilisé pour l'ajout. J'y donnerai un coup d'oeil.

Commentaire de ines57 le 28/05/2009 09:18:09

Salut :)
Merci d'avoir répondu.

Alors, en fait j'ajoute dans une table appelée annonce :

CREATE TABLE `annonce` (
  `ann_no_annonce` int(11) NOT NULL auto_increment,
  `ann_mdp` varchar(10) NOT NULL default '',
  `ann_titre` varchar(100) NOT NULL default '',
  `ann_no_appartient` int(10) NOT NULL default '0',
  `ann_description` text NOT NULL,
  `ann_prix` int(100) NOT NULL default '0',
  `ann_surface` int(3) default '0',
  `ann_nb_pieces` int(10) NOT NULL default '0',
  `ann_photo` varchar(255) default NULL,
  `ann_photo_min` varchar(20) NOT NULL default '',
  `ann_nom` varchar(100) NOT NULL default '',
  `ann_prenom` varchar(100) default NULL,
  `ann_no_pays` int(10) NOT NULL default '0',
  `ann_no_ville` varchar(100) default NULL,
  `ann_no_tel` int(15) default NULL,
  `ann_mail` varchar(100) NOT NULL default '',
  `ann_valide` char(3) NOT NULL default 'non',
  PRIMARY KEY  (`ann_no_annonce`)
) TYPE=BerkeleyDB AUTO_INCREMENT=9 ;

Voici la partie dans le formulaire pour ajouter (pour la photo) :

[code]

<?php

$nbr_champs = 3;
for($nbr=0;$nbr<$nbr_champs;$nbr++){

echo ?><input type="file" name="fichier_upload_<?php echo $nbr; ?>" id="fichier_upload_<?php echo $nbr; ?>"><br/><br/>

<?php
}
?>

[/code]

Puis pour le traitement je me suis servie de ton code, en enlevant la rotation.

En fait, je veux enregister le nom des images respectivement dans ann_photo et ann_photo_min.

Je te remercie de ton aide




Commentaire de D1stort1on le 30/05/2009 15:37:13

Salut,

logiquement, tu devrais procéder de la manière suivante pour ajouter le nom des photos :

$query = sprintf("INSERT INTO annonce (ann_photo, ann_photo_min)"
." VALUES ('$fichier_n_nom', '$nom_fichier_reduit')");
$result = mysql_query($query) or die(mysql_error());

enfin, ce n'est qu'un extrait minimaliste, ta requête pourra contenir tous tes autres champs, mais normalement en procédant de la sorte, le nom des images devrait s'ajouter correctement à la bdd. Si vraiment ce n'est pas le cas, essaie de tester ces 2 variables, de façon à savoir si elles ont bien une valeur.

@+
J'espère que ca ira ;)

Commentaire de fabrice88 le 22/09/2009 11:48:48

Bonjour,

Ton script me semble intéressant et il pourrait très bien convenir à l'utilisation que j'ai pour mon site.

Mais j'ai un souci... j'ai copié ton script sur mon site et lorsque j'essai d'uploader une grosse image, c'est très très et on arrive a un résultat négatif. En fait l'idéal serait que si je prends une photo tout droit sortie de mon APN de par exemple 3.5 Mo je puisse la choisir et elle se redimensionne automatiquement au format que je souhaite.
Même en changeant $fichier_poids_max à 4000000 j'ai toujours un résultat "Le fichier n°0 est trop lourd"

Autre suggestion pour les rotations : c'est une super idée que tu as mais sa serait encore mieux si on pouvait après avoir cliqué sur parcourir avoir un aperçu de l'image de façon à voir la rotation.

Autre suggestion pour l'attente :
Comme l'upload est long lorsqu'une image est grosse il serait bien d'avoir un aperçu de l'avancement du téléchargement afin de ne pas fermer la page pensant que c'est planté.

Autre suggestion : au lieu de mettre par défaut 10 téléchargements serait-il possible de choisir le nombre de téléchargement que l'on souhaite ?

Attention se ne sont que des suggestion pour amélioration et se n'est aucunement des critiques car je serait incapable de le faire ou alors en u passant quelques années :D

Commentaire de guignol71 le 22/09/2009 12:09:48

Salut,

pour la taille de fichier cela dépend de ton hébergeur. Par exemple chez 1&1, il me semble que je suis limité à 2Mo et avec une résolution maxi que je n'ai plus en tête.

Commentaire de fabrice88 le 22/09/2009 12:50:40

ok comment je peu savoir qu'elle taille maxi je peu avoir ?
avec phpinfo j'ai :
upload_max_filesize : Local Value 20M . Master Value 20M
post_max_size : Local Value 8M . Master Value 8M
upload_tmp_dir : Local Value no value Master Value no value  

par contre se que je ne comprend pas c'est que l'image final dans ton script ne fait que 500000 octets et c'est donc bien une image de maxi 500 000 octets qui est uploader au final alors pourquoi sa ne fonctionnera pas meme avec une image de 10Mo par exemple.

Commentaire de D1stort1on le 22/09/2009 21:33:52

Salut fabrice88,

merci pour ton message, et les idées que tu me donnes. Malheureusement cela fait un petit moment déjà qu ej en'ai pas bcp de temps a consacrer au php. J'avais dans un premier temps essayé de me mettre aux class php5, et de passer mon upload en class lui aussi. Cependant je suis un sportif avant d'être programmeur amateur. J'ai donc privilégié les gros virées en vélo dans mes montagnes (alpes suisses) aux heures passées sur mon ordi.

Pour ce qui est de tes commentaires :
- aperçu avant rotation = bonne idée mais le truc c'est que j'ai créé ce script qui à la base était uniquement une boucle pour l'upload et je l'ai agrémenté de tout ce que j'ai pu au fur et à mesure que je bossais sur mon site. Et j'y ai ajouté un formulaire pour les personnes qui le désiraient sur ce site. Donc l'idée est à voir quand je passerai mon ptit code en class php5, cet hiver si tout va bien.
- aperçu d'avancement = le soucis est qu'au moment ou l'upload s'effectue, je ne peux pas recevoir du serveur l'avancement, tout au plus mettre une image gif animée mais qui ne représentera pas l'upload réel.
- pour ce qui est du nombre d'image à 10 = tu peux mettre combien de champs tu désires, il te suffit de changer le nombre de champs affichés sur le formulaire $nbr_champs = 10; la tu mets le nombre que tu en veux, et le tour est joué puisque la page d'upload reçoit cette même valeur par le biais du champ caché...
- images lourdes = je sais que mon upload souffre lors d'envoi de fichier lourds et cela me dérange un max, malheureusement je n'ai pas encore trouvé de solution à ce soucis, il me semble qu'il doit y avoir une solution avec le cache ou je ne sais quoi d'autre, certainement qu'avec php5 il y a de quoi faire mais je n'ai vraiment pas eu le temps de bouquiner la doc php. Si qqn sait comment faire je suis preneur merci !

En tout cas merci pour ton message, ça me fait plaisir de voir à quel point mon upload à servi aux autre. J'espère pouvoir apprendre php5 voir le 6 je ne sais pas quand il sortira... Et adapter ma source aux nouvelles normes.

Commentaire de moon22 le 07/12/2009 01:49:52

Salut,je vous remercie pour cet excellent code ,vraiment bravo:).Je voulais juste vous demander à propos de votre réponse du 30/05/2009 concernant l'ajout des images dans la bd,dans quelle partie du code je dois mettre la requete "insert into" et est ce que jdois changer d'autres paramètres pour mentionner le champs image de mon table dans le code??
je suis désolée pr le dérangement mais j'ai bien aimé votre code,il est très intéressant et j'ai besoin de l'utiliser pr mon projet mais j'arrive pas à enregistrer les images dans la base :(

Commentaire de D1stort1on le 08/12/2009 10:42:15

Salut,

pour pouvoir enregistrer le nom de la photo lors de l'upload il ta faut mettre ta requète :

$query = sprintf("INSERT INTO ta_base (ton_champ_photo, ton_champ_photo_mini)"
." VALUES ('$fichier_n_nom', '$nom_fichier_reduit')");
$result = mysql_query($query) or die(mysql_error());

au niveau des lignes 322 à 332, là ou j'ai mis mon commentaire (que tu peux effacer), tu dois ajouter ta requète pour l'ajout.

Bien entendu le code que je viens de noter n'est qu'un exemple. A toi de le modifier selon tes besoins et ta structure de base de données. Il faut aussi y ajouter une connexion a ta base de données.

Sur cet exemple, il te faut modifier au minimum "ta_base", "ton_champ_photo" et "ton_champ_photo_mini".

J'espère que cette réponse répondra a tes attentes, si non, n'hésite pas à me re-contacter afin de trouver une solution à ton problème ;)

Bye

Commentaire de phineau17 le 08/12/2009 11:40:05

Encore bravo pour ce magnifique qui m'a permis de faire décoller mon activité de web-master. donc 20 sur 20 à son auteur.

Je reviens tout de même sur la seule chose qui me pause problème :
Au delà de 2Mo, une photo ne peut être uploadée et le script renverra une message d'erreur : fichier trop lourd. (je suis chez 1&1)
C'est vrai que l'on peut indiquer sur son site que c'est max 2Mo, mais mes utilisateurs sont en général novice et ne savent comment réduire la taille de leur photo directement prélevé de leur APN 5 à 15 Millions de pixels)>>> je leur donne donc les solutions mais cela me prend du temps... je suis un peu fainéant voir même trés fainéant !

N'y aurait-il pas un mec de talent (ou une fille) pour modifier ce magnifique script afin de permettre l'enregistrement de photo quelque soit la taille d'origine de celle-ci enfin bref une prémanipe automatique pour réduire le fichier uploader si celui-ci dépasse le raisonnable en toute transparence pour l'utilisateur.

Et là mes internautes et moi serions les plus heureux du monde ! heu surtout moi, parce que eux quand ça beug dès fois ils s'en vont ... les cons !

Commentaire de D1stort1on le 08/12/2009 13:30:45

@PHINEAU17 :

Bon courage pour trouver, j'ai déjà essayé pas mal de choses, mais pour le moment c'est la mort. Le problème c'est qu'avec PHP, tu modifies le fichier une fois qu'il est sur le serveur en temporaire, rien ne s'effectue chez le client.

Et d'autre part, le fait de ne pas limiter les fichiers risque de saturer ton serveur lors des envois, déjà qu'en envoyant par ex. 10 fichiers de 2Mo, le temps passe long, très long, alors imagine si la même personne envoie 10 fichiers de 10Mo !!!

La personne ne vas pas forcément vouloir attendre, et au niveau serveur, on est pas tous équipés comme Google ;)

Donc si tu trouves un truc magique, je suis preneur. Je me suis braqué à ce niveau au début aussi, mais j'ai vite laissé tomber.

Commentaire de moon22 le 08/12/2009 21:30:44

Je vous remercie pr votre réponse rapide,en faite,je suis désolée je n'ai pas fais attention au commentaire que vous avez mis dans le code pr la base,et c ce qui a empeché l'enregistrement.j'ai mis la requete"insert" dans le fichier index.php juste avant le bouton "Uploader" pas dans upload_mini_proportionnee_rotation.php et ça marche bien sauf que le nom du l'image enregistrée dans la base est de la forme nom_image.jpg.jpg,donc deux extensions!Alors je vous demande comment faire pr ne pas avoir 2 extensions??

Commentaire de moon22 le 12/12/2009 20:53:37

Toujours pas de réponse:(,si quelqu'un a rencontré le mm pb et il a réussit à le résoudre svp dites moi comment faire pr éliminer les 2 extensions dans le nom de l'image et je vous remercie d'avance :)

Commentaire de phineau17 le 12/12/2009 22:59:05

Merci pour ta réponse Distortion.
Pourtant ça doit être possible puisque certains y arrivent comme le site facebook > je viens de tester l'envoie d'une photo de 8 Mo C'est vrai c'est un peu long mais ça passe !
La solution est peut-être tout simplement de modifier cette limite coté serveur mais la je crains d'être bloqué par mon hébergeur qui ne me donnera pas cette possibilité.

Je vais suivre tes conseils : la solution est peut-être de donner les tutos sous vista / xp / windows7 et mac pour réduire la taille d'une photo simplement avant envoi ou de proposer un freeware super simple en téléchargement pour le faire. Si quelqu'un en connait un bien je suis preneur.

Sinon foncez sur ce script : il est superbe. (Mes préoccupations sont vraiment un petit détail et en aucun cas n'ajoute un bémol à ce petit prog de génie)

Commentaire de D1stort1on le 13/12/2009 19:22:40

@Moon22

Salut, non pas pu répondre avant, je ne vis pas sur phpcs ^^. Bref, je ne vois pas trop ou peut être l'erreur, pour ce qui est du nom de l'image principale :

on récupère le nom grâce à "$fichier_n_nom" qui est créé de cette façon :
     $fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;

et pour l'image réduite, la variable "$nom_fichier_reduit" se contente d'ajouter "mini_" avant le nom :
     $nom_fichier_reduit = 'mini_'.$fichier_n_nom;

J'ai relu mon code des dizaines de fois, il est possible que je n'y trouve pas l'erreur. Ou peut-être est-ce dans ton utilisation du code que le doublon se produit.

Envoie-le moi à swisscore@hotmail.com si tu veux que j'y jette un coup d'oeil.

Commentaire de D1stort1on le 13/12/2009 19:29:09

@Phineau17

M'envoie pas trop de fleurs, certes je m'apperçois que mon code plaît, mais il n'a rien d'exceptionnel ;) je suis en train d'en créer une classe PHP5, dès que le code est bon je le mettrai à disposition.

Pour ce qui est des gros fichier, clair que c'est possible, mais difficilement réalisable pour le commun des mortels, un site comme facebook a d'énormes moyens a sa disposition.

J'ai vu sur le net qu'un moyen existait en utilisant Ajax, cependant la source n'était plus disponible, donc je n'ai pas pu tester le truc. La raison pour laquelle j'ai stoppé les recherches est que si trop de monde envoie de trop gros fichiers sur un hébèrgement "normal", c'est tout le site qui en fait les frais...

Si tu trouves une solution miracle, tiens nous informés.

Commentaire de moon22 le 13/12/2009 22:13:51

Merci pour ta réponse Distortion :)
En faite,j'ai volu garder le nom original de l'image donc j'ai mis:
$fichier_n_nom=$nbr."_".$fichier_date."_".$fichier_nom.".".$fichier_ext;au lieu de: $fichier_n_nom=$nbr."_".$fichier_date.".".$fichier_ext;
et fichier_nom est déclaré comme ceci:$fichier_nom = $_FILES['fichier_upload_'.$nbr]['name']; et depuis je trouve toujours la date puis le nom de l'image et double extensions,comme ci fichier_nom récupère le nom de l'image avec son extension.svp aidez moi à régler ce problème et je vous remercie d'avance

Commentaire de SEBSEBO27 le 17/12/2009 06:02:07 10/10

Merci pour ce script génial!
ça marche nickel!
Tu me fais gagner un temps précieux.

Merci encore

Commentaire de php26 le 19/01/2010 16:04:13

Bonjour! merci pour ce script!
avez vous trouvé une solution pour les photos >2Mo. mes client sne veulent pas réduire la photos avant l'upload! mais le redimensionnement ne fonctionne donc pas pour les grosses photos!
J'appelle à l'aide, je tourne depuis un moment je ne trouve rien!
merci par avance!

Commentaire de D1stort1on le 19/01/2010 17:11:53

Salut,

à première vue, je n'ai rien trouvé de vraiment efficace, la seule chose que je n'ai pas eu le temps de tester est l'exécution asynchrone à l'aide d'Ajax, cependant je me demande si cette astuce peut nous apporter qqc au niveau d'un upload volumineux...

Apparemment cela premet d'uploader sans bloquer la page, mais je ne crois pas au miracle de l'upload d'un gros fichier...

Peut-être qu'en mettant un message dans le forum, quelqu'un de plus doué pourra te guider ;)

Commentaire de Vickilux le 23/01/2010 20:08:03

Bonjour, félicitations pour le scripte !

Je voudrais connaître la solution pour rendre les champs non obligatoires, afin que je puise valider le formulaire sans obtenir les messages "Le fichier n°x n'a pas pu être uploadé etc...Si quelqu'un à une idée.

Merci beaucoup !

Commentaire de Vickilux le 30/01/2010 00:37:59

Bonjour,

J'ai une image au format logo.png avec fond transparent que je voudrais utiliser pour le copyright de la photo, mais quand la photo est créé, alors le logo.png qui est coller dessus est devenu opaque, cependant je voudrais garder la transparence ! Si quelqu'un peut m'aider merci beaucoup !

Commentaire de l_nico le 11/03/2010 16:38:07

Bonjour,
merci ce script est génial.
Par contre je me heurte à l'enregistrement des images dans ma BDD.
Je n'arrive pas a comprendre comment enregistrer plus d'une image dans une BDD
J'ai compris que le nom que prend l'image uploadée est définie par la variable '$fichier_n_nom'

voici ma requete:

$query = "INSERT INTO $table VALUES ('', '$nom', '$prenom','$fichier_n_nom','là l'image 2,'là l'image 3)";


c'est précisément l'image 2 et l'image 3que je n'arrive pas a recuperé.

Quelqu'un sait-il ?

merci

Commentaire de didine1975 le 16/07/2010 23:06:00 10/10

bonjour,
avant tout merci pour ce script, les commentaires toutes au long du code et le suivi.
je viens de le mettre en place et tout comme MOON22, j'ai voulu conserver le nom d'origine des images, j'ai également vu apparaitre une double extension, j'ai juste retiré l'ajout de l'extension, puisqu'elle est déjà récupérée avec le nom de l'image (je suis super novice en php, donc je ne garantie pas la solution, mais personnellement ça ne m'a généré aucune erreur, et ça n'a pas l'air d'avoir d'incidence ailleurs)

à la ligne:
$fichier_n_nom = $nbr."_".$fichier_date."_".$fichier_nom.".".$fichier_ext;

j'enlève l'ajout de l'extension, ce qui donne :
$fichier_n_nom = $nbr."_".$fichier_date."_".$fichier_nom;

Voilà si ça peut aider quelqu'un...
et encore RESPECTS pour l'auteur.
Audrey

Commentaire de D1stort1on le 08/08/2010 12:06:08

@ L_NICO :
Salut,

pour enregistrer plusieurs photos uploadées, tu dois mettre ta requête dans la boucle, là ou j'ai noté l'emplacement. Les images sont uploadées les unes après les autres, ce qui fait que tu ne peux pas les enregistrer comme sur ta requête. Chaque image sera un nouvel enregistrement dans ta base de données.

@ DIDINE1975 :
Merci pour le commentaire, pour ce qui est de ta solution, je ne l'ai pas testé et pas eu le temps de chercher la solution, mais merci de le proposer aux autres ;)

@ Vickilux :
Je ne comprend pas vraiment ton but. Le script tourne le nombre de fois qu'il y a de photos, donc si tu effectues une vérification des champs avant d'envoyer au script d'upload, tu peux définir le nombre juste de fois ou le script s'exécutera. C'est le champ caché <input name="nbr_f" type="hidden" value="<?php echo $nbr_champs; ?>"> qui renseigne le script d'upload concernant le nombre de boucle à effectuer.

Pour ce qui est du fichier .png, il faut que je regarde. J'ai aussi des soucis concernant les .gif transparents.

Commentaire de jako46 le 16/05/2011 03:46:35

Super le script! Bravo! Moi j'obtient
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home/........./upload_mini_proportionnee_rotation.php on line 13
Pas de fichier à uploader dans le champ n°1

Quelqu'un sais comment regler cela?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

upload dans table [ par eax ] salut!je voudrais savoir s'il est possible d'uploader un fichier (une image par exemple) et le stocker dans un champ d'une base de données mysqlje vou Upload d'Image et resize de cette image [ par 4feeling ] je cherche un petit bout de script qui permettrai d'uploader une image jpeg et l'enregistrer dans une taille précise. Par exemple on uploade, et on en upload d'image [ par guikiki ] Bonjour à tous!!!voilà..encore un problème que je n'ai toujours pas réussit à résoudre et ce n'est pas faute d'essayer!!voilà, j'ai fait une page en i Upload image et limitation taille [ par millo ] Je suis entrain de dévellopé un script ou je propose l'upload de photo mais pour des raisons évidentes je souhaite limiter l'espace disque réservé pou upload d'images [ par G_ki_aime_pas_le_php ] Salut à tous!G un petit problème j'essaie d'uploader un fichier et ça fonctionne pas.G TOUT essayé j'en ai marre!Est ce que quelqu'un aurait la soluti afficher les image d'un repertoir et un sous repertoir + upload [ par angelx ] bonjour je voudrais afficher les image d'un reperoire et SOUS Repertoire + faire un uploade sans donner le chemin de l'image en utilisant les image ge Upload :) [ par GuilleW ] Bonjour bonjour,Je souhaite faire un Upload de fichier.pour cela j'ai un image , et je souhaiterai que lorsque l'on click sur cette image, elle lance Upload image .. j'ai cherché mais je ne comprends pas .. :S [ par Hash2o ] Voila, je suis a la recherche d'une solution pour uploader une image sur un serv. J'ai essayé la plus part des solutions proposer sur le site mais je pb de upload [ par filrouge13 ] Bonjour,Petit probl&#232;me de upload et de v&#233;rification de l'existence du fichier.J'ai r&#233;cup&#233;r&#233; ce code sur un forum, il devrait Upload apres Redimension d'une image jpg sous Free [ par MrManchot ] Tout d&#233;ja Bonjour a tous &nbsp;(c'est mon premier poste ici).Je suis d&#233;butant en php, et je n'arrive pas a Uploader apres avoir redimensionn


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,686 sec (4)

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