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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Besoin d'aide pour faire fonctionner un Script d'upload d'images


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Besoin d'aide pour faire fonctionner un Script d'upload d'images
    Voici mon script d'uplaod d'image qui marchait bien jusqu'a aujourd'hui.

    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
     
    <?php
      /**
       * function formatFileName
       * @access public
       * @param string - nom de fichier à formater
       * @param int - longueur maximale autorisée pour le nom de fichier
       * @return string - nom de fichier formaté
       * @desc Tronque éventuellement le nom de fichier, le convertit en minuscules et
       *           y élimine les caractères potentiellement dangereux.
       */         
       function formatFileName($aFileName, $aMaxLength = 50) {
         $aFileName = strToLower(subStr($aFileName, 0, $aMaxLength));
         $aFileName = ereg_replace('[^a-zA-Z0-9,._\+\()\-]', '_', $aFileName);
     
         return $aFileName;
       } // end of function formatFileName() /2
     
       /* PARAMETRES DE CONFIGURATION DU SCRIPT
        */
     
       /* chemin d'accès au répertoire d'upload (vers où le fichier uploadé temporaire sera transféré)*/
       /* ce répertoire doit EXISTER et être ACCESSIBLE EN ECRITURE !!*/
       $destination_dir = 'C:\Program Files\EasyPHP1-8\www\Phototheque_sp\photos\';
       
       /* taille maximale en octets du fichier à uploader*/
       $file_max_size = 1000000;
       
       /* extensions de fichiers autorisées*/
       $authorized_extensions = array('jpg', 'gif');
    
       /* TRAITEMENT PRINCIPAL
        */   
       
       /* vérifie l'existence du répertoire de destination */
       if (!is_dir($destination_dir)) {
         echo 'Veuillez indiquer un r&eacute;pertoire destination correct !';
         die();
       }
     
       // vérifie que répertoire de destination a des droits en écriture
       if (!is_writeable($destination_dir)) {
         echo 'Veuillez spécifier des droits en écriture pour le r&eacute;pertoire destination !';
         die();      
       }   
     
       // réception du formulaire
       if (isSet($_POST['submitFile'])) {
     
         // vérifie qu'un fichier a bien été soumis
         if (isSet($_FILES) && is_array($_FILES)) {
     
           // pas d'erreur lors de l'upload
           if ($_FILES['photo']['error'] == UPLOAD_ERR_OK) {
     
             // vérifie la taille en octets
             if ($_FILES['photo']['size'] <= $file_max_size) {
     
               // vérifie l'extension du fichier recu
               // il est aussi possible (et sans doute mieux) de se baser sur $_FILES['aFile']['type']
               // qui retourne le type MIME correspondant (par exemple: image/pjpeg)         
               $lastPos = strRChr($_FILES['photo']['name'], ".");
               if ($lastPos !== false && in_array(strToLower(subStr($lastPos, 1)), $authorized_extensions)) {
     
                 // définit un nom de fichier destination unique à partir du nom du fichier original formaté
                /* $destination_file = time().formatFileName($_FILES['photo']['name']);           */ 
     
                 // déplace le fichier uploadé du répertoire temporaire
                 // vers les répertoire/fichier destination spécifiés
                 if (move_uploaded_file($_FILES['photo']['tmp_name'],
                                             $destination_dir.DIRECTORY_SEPARATOR.$destination_file)) {
                   echo '<h6>Fichier valide et upload&eacute; correctement.</h6>';   
                 } else { // error sur move_uploaded_file
                   echo '<h6>Le fichier n\'a pas &eacute;t&eacute; upload&eacute; correctement !</h6>';
                 }
               } else { // pas d'extension ou mauvaise extension
                 echo '<h6>Mauvaise extension !</h6>';
               }      
             } else { // Taille maximale dépassée
               echo '<h6>Fichier trop volumineux !</h6>';
             }
           } else { // Erreur lors de l'upload
             switch ($_FILES['photo']['error']){
               case UPLOAD_ERR_INI_SIZE:
                  echo '<h6>Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
                           pour upload_max_filesize dans php.ini.</h6>';
                  break;
               case UPLOAD_ERR_FORM_SIZE:
                  echo '<h6>Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
                           pour MAX_FILE_SIZE dans le formulaire d\'upload.</h6>';
                  break;
               case UPLOAD_ERR_PARTIAL:
                  echo '<h6>Le fichier n\'a &eacute;t&eacute que partiellement upload&eacute;.</h6>';
                  break;                            
               default:
                  echo '<h6>Aucun fichier n\'a &eacute;t&eacute upload&eacute;.</h6>';
             } // switch
           }   
         } else { // aucun fichier reçu
           echo '<h6>Pas de fichier recu</h6>';
         }
       } // fin de réception de formulaire
    ?>
    Il m'indique maintenant une erreur à la ligne 29 au niveau de la verification du format du fichier. Etant débutant en php, je n'arrive pas a trouver d'ou viens cette erreur.
    Je vous remercie d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    et quel est le message d'erreur ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voici le message d'erreur :

    Parse error: parse error in c:\program files\easyphp1-8\www\phototheque_sp\upload.php on line 29

  4. #4
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Salut la ligne 29 c'est celle-ci si je ne me trmope pas:

    $authorized_extensions = array('jpg', 'gif');

    Je ne vois pas ce qui peut clocher, essaye d'enlever l'espace devant 'gif' mais je doute que ça vienne de là.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    et si la reponse etait toute bete

    $authorized_extensions = array("jpg", "gif");

  6. #6
    Membre régulier Avatar de luggerhouse
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Pluttôt débile de probleme...

    J,ai modifié la ligne 22 pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $destination_dir = "C:\Program Files\EasyPHP1-8\www\Phototheque_sp\photos\";
    Puis maintenant
    PHP Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/html/recettes/test7.php on line 47


    Plus de temps... Journée terminée (enfin!)

    Bonne chance!
    LuggerHouse
    ----- Linux Rocks! -----

    LuggerHouse
    Montreal Quebec Canada

Discussions similaires

  1. Besoin d'aide pour faire fonctionner un script Perl pour un photomaton sous Linux.
    Par loran42o dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 29/05/2013, 09h31
  2. Réponses: 42
    Dernier message: 11/03/2007, 14h09
  3. [VBA-E]besoin d'aide pour faire une boucle
    Par mikazounette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/04/2006, 14h04
  4. Besoin d'aide pour faire un script
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 16/07/2005, 16h44
  5. [langage]Besoin d'aide pour debogage d'un script
    Par deadgod dans le forum Langage
    Réponses: 32
    Dernier message: 27/06/2005, 00h18

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