Je repete le 'name' ne sert qu'a la fin, quand tu crées le fichier.
Je repete le 'name' ne sert qu'a la fin, quand tu crées le fichier.
...
Donc $image = $value['tmp_name']; au début (je ne pourrais pas tester si c'est un image)
et imagejpeg ( $img_dst , $chemin.'/'.$value['name']); à la fin ?
EDIT : ca ne marche pas mieux
Je ne vois pas pourquoiau début (je ne pourrais pas tester si c'est un image)
Car le fichier sera du type xxxxx.tmp
Enfin bref ca n'est pas le + gros pb.
Si ta fonction est_image() verifie les extensions, il faut qu'elle utilise $value['name'].
Si elle fait des verification sur le contenu du fichier, il faut qu'elle utilise $value['tmp_name']
Si elle fait les deux, ba elle a besoin des deux
Oui oui ca j'avais saisie, j'ai bien testé sur le champ $value['name'] .
Mais bon ca n'uploade toujours rien ...
Déja tu ne peux pas dire que ca n'upload pas : le fichier arrive bien sur ton serveur ; c'est ce que tu en fais après qui ne fonctionne pas comme tu veux.
Ou en est ton code ?
Je te confirme qu'aucune fichier n'est uploadé sur le serveur
Concernant mon dernier code :
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 foreach ($_FILES as $value) { $image = $value['tmp_name']; if (est_image($image)){ // Redimmesionnement $filename = $image; // La je ne comprend pas, il faut recuperer les cotes de l'image d'origine non ??? list($width, $height) = getimagesize($filename); //on recup la taille de l'image original if ($width > $height){ // mode paysage if ($width > 900){ $newwidth = 900; $newheight = (900*$height)/$width; } } else{ // mode portrait if ($height > 700){ $newheight = 700; $newwidth = (700*$width)/$height; } } $img_dst = imagecreatetruecolor( $newwidth, $newheight ); //on créer l'image destination $img_src = imagecreatefromjpeg($filename); imagecopyresized($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg ( $img_dst , $chemin.'/'.$value['name']); $nbPhotos ++ ; } // Fin if est_image } // Fin for each
Tu veux dire que $_FILES est vide ?Je te confirme qu'aucune fichier n'est uploadé sur le serveur
Je ne pense pas
ce n'est pas ce qu'il y a dans le code que tu montres la.j'ai bien testé sur le champ $value['name'] .
Non $_FILES n'est pas vide, mais à la fin, rien n'est présent sur le serveur.
Mon code est présent 2 post plus hautce n'est pas ce qu'il y a dans le code que tu montres la.
ba oui et dans ce code tu utilises tmp_name pour estimage()
Autant pour moi
Mais maintenant tu va me dire
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 foreach ($_FILES as $value) { $image = $value['name']; if (est_image($image)){ // Redimmesionnement $filename = $image; // La je ne comprend pas, il faut recuperer les cotes de l'image d'origine non ??? list($width, $height) = getimagesize($filename); //on recup la taille de l'image original if ($width > $height){ // mode paysage if ($width > 900){ $newwidth = 900; $newheight = (900*$height)/$width; } } else{ // mode portrait if ($height > 700){ $newheight = 700; $newwidth = (700*$width)/$height; } } $img_dst = imagecreatetruecolor( $newwidth, $newheight ); //on créer l'image destination $img_src = imagecreatefromjpeg($filename); imagecopyresized($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg ( $img_dst , $chemin.'/'.$value['name']); $nbPhotos ++ ; } // Fin if est_image } // Fin for each
Donc on en est toujours au même endroitJe repete le 'name' ne sert qu'a la fin, quand tu crées le fichier.
Ba oui, je ne vois pas ce que tu n'arrives pas a faire.
estimage() doit utiliser le nom du fichier donc $value['name']
getimagesize() et imagecreatefromjpeg() doivent utiliser le fichier uploadé donc $value['tmp_name']
Haaa enfin, grâce à ces explications je vais pouvoir changer un peu mon script.
Je teste d'ici 30 min et je donne le résultat
Le code sera donc :
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 foreach ($_FILES as $value) { $image = $value['name']; if (est_image($image)){ // Redimmesionnement $filename = $image; // La je ne comprend pas, il faut recuperer les cotes de l'image d'origine non ??? list($width, $height) = getimagesize($value['tmp_name']); //on recup la taille de l'image original if ($width > $height){ // mode paysage if ($width > 900){ $newwidth = 900; $newheight = (900*$height)/$width; } } else{ // mode portrait if ($height > 700){ $newheight = 700; $newwidth = (700*$width)/$height; } } $img_dst = imagecreatetruecolor( $newwidth, $newheight ); //on créer l'image destination $img_src = imagecreatefromjpeg($value['tmp_name']); imagecopyresized($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg ( $img_dst , $chemin.'/'.$value['name']); $nbPhotos ++ ; } // Fin if est_image } // Fin for each
Ha ca s'améliore, ca ne fonctionne pas mais j'ai moins de bug
Notice: Undefined variable: newwidth in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 48
Notice: Undefined variable: newheight in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 48
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 48
Notice: Undefined variable: newwidth in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 51
Notice: Undefined variable: newheight in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 51
Warning: imagecopyresized() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 51
Warning: imagejpeg() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP5.3.0\www\ASG\uploadPhoto.php on line 53
Tes valeurs $newdith et $newheight ne sont pas définis dans le cas par exemple ou $width < $height
Exact, j'ai rajouté (après le calcul portrait / paysage) :
Mais je ne suis pas convaincu que cela soit la source de mes problèmes quoi que ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (!isset($newwidth)){ $newwidth = $width; } if (!isset($newheight)){ $newheight = $height; }
L'erreur est claire : $newwidth n'est pas défini
yipiii ca marche enfin.
Il me reste un bug :
J'ai une liste déroulante comme ceci :
ET apres je traite pour savoir s'il s'agit d'un evenement ou d'une equipe (equipe2, equipe3, evenement2 ...)
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 <select name="categorie"> <option value="Equipe2">Séniors 1</option> <option value="Equipe3">Séniors 2</option> <option value="Equipe4">Séniors 3</option> <option value="Equipe5">U19 (18 ans)</option> <option value="Equipe6">U17 (15 ans)</option> <option value="Equipe7">U15 (13 ans)</option> <option value="Equipe8">U13 (Benjamins)</option> <option value="Equipe9">U11 (Poussins)</option> <option value="Equipe10">U9 (Debutants)</option> <option value="Equipe11">U7 (Ecole de foot)</option> <option value="Equipe12">Loisirs</option> <option value="Evenement2">Le Loto</option> <option value="Evenement3">Le Bal</option> <option value="Evenement4">Le Stage de fin d'année</option> </select>
J'ai fait une fonction contientChaine :
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 // Decoupage de $categorie pour savoir si c'est une evt ou une equipe $Trouve = contientChaine( $categorie , "Evenement"); // Puis requete adaptée if ($Trouve == true){ // Les photos sont en rapport avec un evenement $tab = explode("Evenement", $categorie); $idE = $tab[1]; $query = "INSERT INTO gallerie SET email ='".utf8_decode($email)."' ,fichier='".$value['name']."' ,auteur='".utf8_decode($auteur)."' ,idEquipe = 0 ,idEvenement = $idE ,visible = 0 "; } else{ // Les photos sont en rapport avec une équipe $tab = explode("Equipe", $categorie); $idE = $tab[1]; $query = "INSERT INTO gallerie SET email ='".utf8_decode($email)."' ,fichier='".$value['name']."' ,auteur='".utf8_decode($auteur)."' ,idEquipe = $idE ,idEvenement = 0 ,visible = 0 "; } $result = execute($query) ;
Mais je l'impression que 'trouve' ne vaut jamais true
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function contientChaine($cherche , $chaine) { if(strpos($chaine, $cherche) <> ''){ return true; } else{ return false; } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager