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 :

Upload multiple et redimensionnement


Sujet :

Langage PHP

  1. #21
    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
    Je repete le 'name' ne sert qu'a la fin, quand tu crées le fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  2. #22
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    ...

    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

  3. #23
    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
    au début (je ne pourrais pas tester si c'est un image)
    Je ne vois pas pourquoi
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #24
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    Car le fichier sera du type xxxxx.tmp

    Enfin bref ca n'est pas le + gros pb.

  5. #25
    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
    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
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #26
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    Oui oui ca j'avais saisie, j'ai bien testé sur le champ $value['name'] .
    Mais bon ca n'uploade toujours rien ...

  7. #27
    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
    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 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #28
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    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

  9. #29
    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
    Je te confirme qu'aucune fichier n'est uploadé sur le serveur
    Tu veux dire que $_FILES est vide ?
    Je ne pense pas

    j'ai bien testé sur le champ $value['name'] .
    ce n'est pas ce qu'il y a dans le code que tu montres la.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #30
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    Non $_FILES n'est pas vide, mais à la fin, rien n'est présent sur le serveur.
    ce n'est pas ce qu'il y a dans le code que tu montres la.
    Mon code est présent 2 post plus haut

  11. #31
    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
    ba oui et dans ce code tu utilises tmp_name pour estimage()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #32
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    Autant pour moi

    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
    Mais maintenant tu va me dire
    Je repete le 'name' ne sert qu'a la fin, quand tu crées le fichier.
    Donc on en est toujours au même endroit

  13. #33
    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
    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']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #34
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    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

  15. #35
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    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

  16. #36
    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
    Tes valeurs $newdith et $newheight ne sont pas définis dans le cas par exemple ou $width < $height
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #37
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    Exact, j'ai rajouté (après le calcul portrait / paysage) :

    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;
    }
    Mais je ne suis pas convaincu que cela soit la source de mes problèmes quoi que ...

  18. #38
    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
    L'erreur est claire : $newwidth n'est pas défini
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #39
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Points : 66
    Points
    66
    Par défaut
    yipiii ca marche enfin.

    Il me reste un bug :

    J'ai une liste déroulante comme ceci :



    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&eacute;niors 1</option>
     
                                    <option value="Equipe3">S&eacute;niors 2</option>
     
                                    <option value="Equipe4">S&eacute;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&eacute;e</option>
     
     
        </select>
    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
    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) ;
    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
    function contientChaine($cherche , $chaine) {
     
    	if(strpos($chaine, $cherche) <> ''){
    		return true;
    	}
    	else{
    		return false;
    	}
     
    }
    Mais je l'impression que 'trouve' ne vaut jamais true

Discussions similaires

  1. [Upload] Upload multiple files
    Par aymanov dans le forum Langage
    Réponses: 17
    Dernier message: 22/12/2008, 09h38
  2. [Upload] bug sur upload multiple d'envoi d'images
    Par fabien14 dans le forum Langage
    Réponses: 3
    Dernier message: 13/08/2006, 12h05
  3. [Upload] traitement upload multiples
    Par renaud26 dans le forum Langage
    Réponses: 7
    Dernier message: 23/03/2006, 19h20
  4. [demande] upload multiples
    Par pIch dans le forum Général Java
    Réponses: 6
    Dernier message: 21/07/2005, 15h47
  5. [Upload] upload multiple
    Par mat10000 dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2005, 17h07

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