IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

php Galerie photos : Erreur upload images


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 47
    Points
    47
    Par défaut php Galerie photos : Erreur upload images
    Salut,

    J'ai une galerie photos que j'ai codé en php. Mais j'ai un souci lors de l'uploa d'images. Il semble qu'en fonction de certaines images ma variable $fichier soit vide ou non. Il s'agit d'images jpeg. Avec certaines images, pas de problèmes et avec d'autres, ça marche pas.

    Voic mon message d'erreur :

    Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in F:\MesSitesWamp\test2\admin\galerie_photos_ajout.php on line 52

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    $taille_ko = 4000;//400 ko
    $taille_max = $taille_ko*1024;//taille en octets
    $dest_dossier = 'admin/img_lib_orig/';
    $height=100;
    $width=150;
     
    //=========================================================
    //           			 TESTS
    //=========================================================
     
     if (isset($_FILES['fichier']))
     {
    	foreach ($_FILES['fichier']['name'] as $key => $value)
    	{
    		$fichier=$value;//nom reel de l'image (juse le nom, pas le chemin)
    		$size=$_FILES['fichier']['size'][$key]; //poids de l'image en octets
    		$tmp=$_FILES['fichier']['tmp_name'][$key];//nom complet (chemin complet)temporaire de l'image (sur le serveur)
    		$type=$_FILES['fichier']['type'][$key];//type de l'image
    		$name=$_FILES['fichier']['name'][$key];
     
     
     
    		if (!empty($fichier)) //============  SI CHAMP REMPLI  ===========================================================
    		{
    			$array= getimagesize($tmp);//getimagesize reprend le type en paramètre 3. Le type 2 correspond au JPEG
    			$type= $array[2];
     
     
    			if ($type==1 OR $type==2)//============  SI TYPE OK  =========================================================
    			{
    				if((substr($name,-3) == "jpg" )OR (substr($name,-3) == "gif"))//============  SI EXTENSION OK ============
    				{
    					 if((file_exists($tmp))and($size < $taille_max))//============  SI TAILLE OK ==========================
    					 {
    							$dest_fichier = basename($name);
    							$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    							// un chtit regex pour remplacer tous ce qui n'est ni chiffre ni lettre par "_"
    							$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
    							//$dest_fichier = str_replace(" ","",$dest_fichier);
     
    							// pour ne pas écraser un fichier existant
    							while(file_exists($dest_dossier . $dest_fichier)) 
    							{
    								//echo 'image EXISTE';
    								$dest_fichier = rand().$dest_fichier;
    							}
     
    						 	$taille= getimagesize($tmp);
    							$L=$taille[0];
    							$H=$taille[1];
    							$newL=900;			
    							$newH=ceil(($H/$L)*$newL);
    							//echo $newL.'x'.$newH; 
     
    							if(move_uploaded_file($tmp,$dest_dossier.$dest_fichier))  //Met l'image de taille normale dans $dest_dossier . $dest_fichier 
    							{
    							//================ CREATION NORMALE ======================================================= 
    							$source = imagecreatefromjpeg("admin/img_lib_orig/".$dest_fichier.""); // La photo est la source
    							$destination = imagecreatetruecolor($newL,$newH); // On crée la miniature vide
     
    							// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
    							$largeur_source = imagesx($source);
    							$hauteur_source = imagesy($source);
    							$largeur_destination = imagesx($destination);
    							$hauteur_destination = imagesy($destination);
     
    							// On crée la miniature
    							imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
    							imagejpeg($destination, "admin/tempresize/".$dest_fichier."");//destination de la miniature
     
    							rename("admin/tempresize/".$dest_fichier."","admin/img_lib_orig/".$dest_fichier."");
     
    							//================ CREATION MINIATURE ======================================================= 
    							$source = imagecreatefromjpeg("admin/img_lib_orig/".$dest_fichier.""); // La photo est la source
    							$destination = imagecreatetruecolor($width,$height); // On crée la miniature vide
     
    							// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
    							$largeur_source = imagesx($source);
    							$hauteur_source = imagesy($source);
    							$largeur_destination = imagesx($destination);
    							$hauteur_destination = imagesy($destination);
     
    							// On crée la miniature
    							imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
    							imagejpeg($destination, "admin/img_lib_thumbs/".$dest_fichier."");//destination de la miniature
    							//========================================================================
    							//   ENREGISTREMENT CHEMIN  + nom IMAGE UPLOADEES DANS BDD ALBUM NON CLASSEES !!!
    							//========================================================================
     
    							$sql = "INSERT INTO image (name_image,id_album,path_image_thumbs,path_image) VALUES ('$dest_fichier','1','admin/img_lib_thumbs/".$dest_fichier."','admin/img_lib_orig/".$dest_fichier."')";
    							mysql_query($sql) or die(mysql_error());
     
    							}
    							else 
    							{
    								//echo "Impossible d'uploader le fichier.<br />Veuillez vérifier que le dossier ".$dest_dossier." existe avec un chmod 755 (ou 777).";
    							}
     
     
    					 }
     
    				}	
    			}
     
    		}
     
     
    	}
     
     
     
     }
    Si vous avez une petite idée.

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Debug en controlant ce que contient $_FILES dans ce cas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Galerie photo
    Par pennylanesworld dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2007, 15h34
  2. [Upload] Upload images php
    Par lls dans le forum Langage
    Réponses: 15
    Dernier message: 19/07/2007, 18h23
  3. Réaliser une galerie photo automatique sans php
    Par vallica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/10/2006, 10h57
  4. [Upload] AFFICHAGE ERREUR upload.php
    Par cherifa dans le forum Langage
    Réponses: 1
    Dernier message: 17/09/2006, 15h29
  5. [GD] Erreur dans galerie photo : Call to undefined function: imagecreatefromjpeg()
    Par philippedeletree dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/02/2006, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo