Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UPLOAD MULTIPLE IMAGE GIF/JPG/PNG AVEC ROTATION ET REDIMENSIONNEMENT GARDANT LES PROPORTIONS


Information sur la source

Catégorie :Divers Classé sous : upload, redimension, multiple, rotation, image Niveau : Débutant Date de création : 16/05/2007 Date de mise à jour : 09/03/2008 11:38:25 Vu / téléchargé: 17 922 / 1 963

Note :
9,2 / 10 - par 15 personnes
9,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (37)
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 name="upload" method="post" action="upload_mini_proportionnee_rotation.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_mini_proportionnee_rotation.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;
  • // 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;
  • }
  • }
  • /***********************
  • 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 > $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 .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
  • *************************************/
  • // transfert ok
  • //if ($nbr==$nbr_fichiers-1) {
  • //echo "Upload et création des miniatures effectué avec succès";
  • //}
  • echo "Le fichier n°".$nbr." a été uploadé avec succès<br />";
  • }
  • // erreur
  • else {
  • echo "Le fichier n°".$nbr." n'a pas pu être uploadé<br />";
  • }
  • }
  • // erreur
  • else {
  • echo "Le fichier n°".$nbr." est trop grand<br />";
  • }
  • }
  • // erreur
  • else {
  • echo "Le fichier n°".$nbr." n'a pas le bon format<br />";
  • }
  • }
  • // erreur
  • else {
  • echo "Le fichier n°".$nbr." est trop lourd<br />";
  • }
  • }
  • // erreur
  • else {
  • echo "Pas de fichier à uploader dans le champ n°".$nbr."<br />";
  • }
  • }
  • ?>
index.php :
-----------
<html>
<head>
<title>Upload</title>
</head>

<body>
<form name="upload" method="post" action="upload_mini_proportionnee_rotation.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_mini_proportionnee_rotation.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;

// 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;
										
									}	
							}
							
							
							/***********************
							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 > $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 .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
								*************************************/

							// transfert ok	
							//if ($nbr==$nbr_fichiers-1) {
							//echo "Upload et création des miniatures effectué avec succès";
							//}
							echo "Le fichier n°".$nbr." a été uploadé avec succès<br />";
														
					}
					// erreur
					else {
						echo "Le fichier n°".$nbr." n'a pas pu être uploadé<br />";
					}
				
				}
				// erreur
				else {
					echo "Le fichier n°".$nbr." est trop grand<br />";
				}
			
			}
			// erreur
			else {
				echo "Le fichier n°".$nbr." n'a pas le bon format<br />";
			}
		
		}
		// erreur
		else {
			echo "Le fichier n°".$nbr." est trop lourd<br />";
		}
	
	}
	// erreur
	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

Pour les "Membres Club", vous pouvez 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 ;)

Commentaires et avis

signaler à un administrateur
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.

signaler à un administrateur
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 !

signaler à un administrateur
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 :)

signaler à un administrateur
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.

signaler à un administrateur
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

signaler à un administrateur
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 :)

signaler à un administrateur
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

signaler à un administrateur
Commentaire de fedebul le 09/06/2007 11:04:08

merci beaucoup encore !!

signaler à un administrateur
Commentaire de monoar le 09/06/2007 14:11:15

Super, exactement ce qu'il me fallait.
Merci

signaler à un administrateur
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.

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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);

signaler à un administrateur
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.

signaler à un administrateur
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

signaler à un administrateur
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.

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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.

signaler à un administrateur
Commentaire de fedebul le 23/09/2007 09:08:27

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

signaler à un administrateur
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

signaler à un administrateur
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!

signaler à un administrateur
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 ?

signaler à un administrateur
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 ;)).

signaler à un administrateur
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.

signaler à un administrateur
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

signaler à un administrateur
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.

signaler à un administrateur
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 ;-)

signaler à un administrateur
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.  

signaler à un administrateur
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...

signaler à un administrateur
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 ??

signaler à un administrateur
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 !    :)

signaler à un administrateur
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

signaler à un administrateur
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).

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