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] Upload image php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Par défaut [Upload] Upload image php
    j'explique mon problème je souhaite par l'intermédiaire d'un fichier php uploader des images dans un répertoire "images" mais aussi créé des miniatures de ces images dans un repertoire nommé "mini". J'ai donc commencé à relationsé mon fichier pour uploader et je vois pas pourquoi ça ne fonctionne pa

    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
     
    <?php
    if (isset($_POST['envoyer'])){
      $repertoire = "./images/";
     
    	  if (is_uploaded_file($_FILES['fichier']['tmp_name']))
    	  {
    		$fichier_temp = $_FILES['fichier']['tmp_name'];
    		$nom_fichier = $_FILES['fichier']['name'];
     
    		$fichier = $repertoire.$nom_fichier;
    		copy($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier);
    		echo "photo uploader";
      	   }
    }
    ?>
       <body>
         <form method="POST" action="index.php" enctype="multipart/form-data">
           Fichier : <input type="file" name="fichier" />
           <input type="submit" name="envoyer" value="Envoyer le fichier" />
         </form>
       </body>

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    et comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      if (is_uploaded_file($_FILES['fichier']))
    	  {
    		$fichier_temp = $_FILES['fichier']['tmp_name'];
    		$nom_fichier = $_FILES['fichier']['name'];
     
    		$fichier = $repertoire.$nom_fichier;
    		move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier);
    		echo "photo uploader";
      	   }

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Par défaut
    merci.
    mais depuis hier j'ai progressé pas mal.
    mon nouveau 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
    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
    <body>
         <form method="POST" action="index.php5" enctype="multipart/form-data">
         <input type="hidden" name="MAX_FILE_SIZE" value="1000000"><br>
           Ajouter Photo : <input type="file" name="avatar" />
           <input type="submit" name="envoyer" value="Ajouter" />
         </form>
        <hr>
    <?php
     
    $dossier = '../images/';
    $rep_mini = "../images/mini/";
     
    if (isset($_POST['envoyer'])){
    $fichier = basename($_FILES['avatar']['name']);
    $taille_maxi = 1000000;
    $taille = filesize($_FILES['avatar']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['avatar']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
         if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier.$fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
        {
             echo 'Upload effectué avec succès !';
             $temp=$_FILES['avatar']['tmp_name'];
             $PHOTO1 = $fichier;
            // par defaut
            $PICTO1 = $PHOTO1;
            // -------------------------------------------------------------
            $NomSource = $temp;
            // recuperation de l IMAGE de la photo
            // Ouvrir l'image avec la fonction appropriée en fonction de l'extension :
            switch ($extension) { 
              case ".jpg":
              case ".peg": // si jpeg
                 $imageSource = imagecreatefromjpeg($NomSource);
                 break;
              case ".png":
                 $imageSource = imagecreatefrompng($NomSource);
                 break;
              case ".gif":
                 $imageSource = imagecreatefromgif($NomSource);
                 break;
            }
            // dimensions de l image source
            $WSource = imagesx($imageSource);
            $HSource = imagesy($imageSource);
            // -------------------------------------------------------------
            // REDIMENSIONNEMENT et SAUVEGARDE de la PHOTO
            // -------------------------------------------------------------
            // on veut une largeur Maxi de 800
            $W = 800;
            // on conserve les proportions
            $H = ($W * ($HSource / $WSource));      
            // -------------------------------------------------------------
            // on REDIMENSIONNE la PHOTO si largeur superieure a $W
            if ($WSource > $W)
            {
               // on cree une image vide aux dimensions de destination
               $imageDest = ImageCreateTrueColor ($W, $H);
               // redimensionnement de la photo
               ImageCopyResampled($imageDest, $imageSource, 0, 0, 0, 0, $W, $H, $WSource, $HSource); 
               // enregistrement de la PHOTO REDIMENSIONNEE avec la fonction appropriée :
               switch ( $extension ) { 
               case ".jpg":
               case ".peg":
                 ImageJpeg ($imageDest, $dossier.$PHOTO1);
                 break;
               case ".gif":
                 imagegif ($imageDest, $dossier.$PHOTO1);
                 break;
               case ".png":
                 imagepng ($imageDest, $cheminlong.$PHOTO1);
                 break;
               }
               // la photo PHOTO1 ne change pas de NOM
           }
           // -------------------------------------------------------------
           // REDIMENSIONNEMENT et SAUVEGARDE du PICTO en ajoutant picto_ avant
           // -------------------------------------------------------------
          // on definit la largeur max du picto a 150 pixels
          $W = 100;
          // on conserve les proportions
          $H = ($W * ($HSource / $WSource));
          // on cree une image vide aux dimensions du picto
          $imageDest = ImageCreateTrueColor ($W, $H);
          // seulement si la largeur du picto est superieur a $W
          if ($WSource > $W)       
          {
             // redimensionnement du picto
             ImageCopyResampled($imageDest, $imageSource, 0, 0, 0, 0, $W, $H, $WSource, $HSource); 
             // sauvegarde du picto sous la forme picto_PICTO
             $PICTO1 = $rep_mini.$PICTO1;
             // enregistrement du PICTO avec la fonction appropriée :
             switch ( $extension ) { 
             case ".jpg":
             case ".peg":
             case ".bmp":
               ImageJpeg ($imageDest, $PICTO1);
               break;
             case ".gif":
               imagegif ($imageDest, $PICTO1);
               break;
             case ".png":
               imagepng ($imageDest, $PICTO1);
               break;
             }
          }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
    }
    ca fonctionne pour certaines photos mais pas pour les plus grandes. et je comprend pas pourquoi.
    quand l'image est trop grande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier.$fichier)
    me retourne faux.
    et $_FILES['avatar']['tmp_name'] me retourne rien...
    quelqu'un pour m'éclairer?

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    regardes le contenu de $_FILES['avatar']['error'], et rends-toi là pour analyser le code d'erreur :
    http://www.php.net/manual/fr/feature...oad.errors.php

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Par défaut
    merci

    mais c'est bon j'ai trouvé.
    j'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000"><br>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="MAX_FILE_SIZE" value="10000000"><br>
    et ça fonctionne

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Et bien tant mieux, parce que moi je ne vois pas le rapport,avec ta manip de ce que ça change???????????

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

Discussions similaires

  1. Upload file image php
    Par tita_pita dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2013, 15h40
  2. [Upload] Upload d'image avec PHP !
    Par King_T dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2008, 02h21
  3. [AJAX] upload d'images php/ajax
    Par zehni dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/08/2007, 14h13
  4. [Upload] Upload d'image problème avec un dédié
    Par gobs dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2006, 17h57
  5. [Upload] Upload d'image....
    Par tochbee dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2005, 11h44

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