Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'upload

Sujet résolu
    7 mai 2008 à 12:43:29

    Bonjour,
    avant de vous monter un peu mon script, j'aimerais vous detailler comment il marche.
    1) On upload son image
    2) Si l'image a bien été upload, on ajoute une petite image dedans :o (libraire gd)

    Le problème, c'est que ça marche pas :(
    Voici la bête ! :pirate:
    <?php
     $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
     $repertoire = 'screen/'; // Repertoire d'upload
    
     if (isset($_FILES['fichier']))
     {
    
     // On vérifit le type du fichier
     if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif')
     {
     $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
     }
    
     // On vérifit le poids de l'image
     elseif ($_FILES['fichier']['size'] > $poids_max)
     {
     $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
     }
    
     // On vérifit si le répertoire d'upload existe
     elseif (!file_exists($repertoire))
     {
     $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
     }
    
    # // Si il y a une erreur on l'affiche sinon on peut uploader
     if(isset($erreur))
     {
     echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
     }
     else
     {
    
     // On définit l'extention du fichier puis on le nomme par le timestamp actuel
     if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
     if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
     if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
     if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
     $nom_fichier = time().$extention;
     
    
     // On upload le fichier sur le serveur.
     if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
     {
     $url = './'.$repertoire.''.$nom_fichier.'';
     echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';
     }
     else
     {
     echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
     }
    
     }
    
     }
    else
     {
    ?>
     <form method="post" enctype="multipart/form-data">
     <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
     <input type="file" name="fichier">
     <input type="submit" value="Envoyer">
     </form>
     <?php
     }
     // On charge d'abord les images
    $source = imagecreatefrompng("logosdz.png"); // Le logo est la source
    $destination = imagecreatefromjpeg("$nom_fichier"); // La photo est la destination
    
    // 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 veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
    $destination_x = $largeur_destination - $largeur_source;
    $destination_y =  $hauteur_destination - $hauteur_source;
    
    // On met le logo (source) dans l'image de destination (la photo)
    imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);
    
    // On affiche l'image de destination qui a été fusionnée avec le logo
    imagejpeg($destination);
    
     ?>
    


    Mais ça me met ce code d'erreur :'( :

    Citation : php(wamp)

    Warning: imagecreatefromjpeg(1210156776.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\screen\index.php on line 68

    Warning: imagesx(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 73

    Warning: imagesy(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 74

    Warning: imagecopymerge(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 81

    Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 84



    Ps : J'ai aussi comme quoi le screen a bien été uploader ;)
    Donc je pensse que c'est la partie du code pour l'image qui plante.

    Alors, pourriez vous m'aider ? ;)
    Merci...
    • Partager sur Facebook
    • Partager sur Twitter
      7 mai 2008 à 13:09:19

      hello je pense avoir trouvé !

      En fait c'est le chemin de 'limage que tu veut réduire qui est mauvais.
      Tu upload ici:
      $url = './'.$repertoire.''.$nom_fichier.'';

      mais tu n'ouvre que .$nom_fichier

      replace par $url et tu verras ça devrait marcher je pense ^^
      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2008 à 13:17:56

        Citation : php


        Warning: imagesx(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 73

        Warning: imagesy(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 74

        Warning: imagecopymerge(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 81

        Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\screen\index.php on line 84



        Erf, non. Et d'ailleurs, c'est pas pour faire une miniature mais ajouter un petit cadre dans l'image de base.
        (dans mon cas : l'image a été postée par $pseudo)
        • Partager sur Facebook
        • Partager sur Twitter
          7 mai 2008 à 13:22:42

          A vérifier aussi s'il considère que l'image existe dans la même page, ce dont j'ai un doute.

          Et en passant par un fichier externe, lancé via <img src="....php" ... ?

          Et pour le lien du fichier, je confirme. Il faut bien que tu reprennes le nom complet. La preuve: la première erreur a disparue.

          Enfin, pas besoin de mettre tes doublequotes, surtout si tu as une variable. C'est une perte de temps pour php.
          • Partager sur Facebook
          • Partager sur Twitter
            7 mai 2008 à 16:07:28

            Idem, j'ai un doute lpu' pour voir s'il connait l'image ;) Donc je vais essayé avec un lien externe ! J'edite quand j'aurais ma réponse ;)
            • Partager sur Facebook
            • Partager sur Twitter
              7 mai 2008 à 16:32:33

              Todo, salut, et oui ;)
              Lpu, ça marche le script GD tout seul... Par contre, si je veux faire un script tout seul qui ajoute logosdz.png a toute mes images présente dans ./screen, y'a pas une fonction qui permet de faire ça a toute les photos présente ou ds le genre ?
              • Partager sur Facebook
              • Partager sur Twitter
                7 mai 2008 à 17:40:23

                J'en ai marre, j'arrive pas a transferer ma variable $url
                J'ai index.php =====> TRANSFERT DE LA VARIABLE $url =======> traitement_screen.php
                • Partager sur Facebook
                • Partager sur Twitter
                  7 mai 2008 à 17:57:26

                  Ton erreur vient de la ligne $destination = imagecreatefromjpeg("$nom_fichier"); .

                  Es-tu sur que l'image est uploadée? Vérifie dans le dossier screen.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 mai 2008 à 17:59:01

                    Oui, l'image est uploader. J'essaye de utiliser la méthode que je viens de donner. *cherche comment envoyer des variables ds une autre page*
                    j'utilise la méthode 2

                    EDIT :

                    si mon lien est : http://localhost/screen/traitement_scr [...] 210176479.gif
                    Donc sur traitement_scree.php j'ai mis
                    <?php
                    // load variable $url
                    $_GET['url'] = $url
                    // On charge d'abord les images
                    $source = imagecreatefrompng("logosdz.png"); // Le logo est la source
                    $destination = imagecreatefromjpeg("$url"); // La photo est la destination
                    
                    // 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 veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
                    $destination_x = $largeur_destination - $largeur_source;
                    $destination_y =  $hauteur_destination - $hauteur_source;
                    
                    // On met le logo (source) dans l'image de destination (la photo)
                    imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);
                    
                    // On affiche l'image de destination qui a été fusionnée avec le logo
                    imagejpeg($destination);
                    ?>
                    


                    Mais bon, erreur :
                    PAS LA MÊME !!!!!!!!!!!


                    Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\screen\traitement_screen.php on line 5
                    C'est quoi héhéhéhé ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 mai 2008 à 18:24:58

                      hum
                      <?php
                      $_GET['url'] = $url;
                      ?>
                      

                      C'est mieux comme ca.....

                      edit :
                      et je crois même que c'est mieux comme ca....
                      <?php
                      $url = $_GET['url'];
                      ?>
                      

                      (Je sais pas ce que tu veux faire j'ai pas lu ^^ )

                      edit2 :
                      c'est très mal sécurisé...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 mai 2008 à 19:05:32

                        Wépe, je sais (:p) C'est en local là ...
                        bon j'essaye, alors 30 seconde :o

                        Bon là ça m'enerve XD
                        Surtout, que avec la fonction $_get['url'] Une new ligne est là ! Bonjour bonjour warning :(

                        Warning: imagecreatefromjpeg(screen/1210156537.jpeg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\screen\traitement_screen.php on line 6

                        Warning: imagesx(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 11

                        Warning: imagesy(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 12

                        Warning: imagecopymerge(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 19

                        Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 22
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 mai 2008 à 1:20:44

                          euh écris :
                          <?php
                          $destination = imagecreatefromjpeg("$url");
                          ?>
                          

                          ça devrait marcher...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 mai 2008 à 18:04:35

                            Erreur trouver. Plus d'info ici

                            Merci beaucoup de votre aide !
                            Résolu.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Problème d'upload

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown