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