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 :

Exécution local et serveur


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut Exécution local et serveur
    bonjour,
    j'ai un petit soucis, j'ai créé un code qui me permet d'uploader des fichier en HTTP.
    voici mon fichier html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form name="form" method="post" action="upload.php" enctype="multipart/form-data">
       <!-- Taille maximale en octets. Non sécurisé car facilement contournable !! -->
       <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
       Veuillez s&eacute;lectionner un fichier &agrave; uploader:
       <input type="file" name="aFile" />
       <input type="submit" name="submitFile" value="Envoyer le fichier" />
    </form>
    voici mon fichier php :
    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
    <?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 = './up/';
       // taille maximale en octets du fichier à uploader
       $file_max_size = 100;
       // extensions de fichiers autorisées
       $authorized_extensions = array('jpg','gif','jpeg','bmp','doc','docx','xls','xslx','pdf','zip','rar','jar','ppt','pptx','pps','ppsx','exe','msi');
       /* 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['aFile']['error'] == UPLOAD_ERR_OK) 
    	   {
    		   // 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['aFile']['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['aFile']['name']);            
    			 // déplace le fichier uploadé du répertoire temporaire
    			 // vers les répertoire/fichier destination spécifiés
    			 if (move_uploaded_file($_FILES['aFile']['tmp_name'], $destination_dir.DIRECTORY_SEPARATOR.$destination_file)) 
    			 {
    			   echo 'Fichier valide et upload&eacute; correctement.';   
    			 } 
    			 else 
    			 { // error sur move_uploaded_file
    			   echo 'Le fichier n\'a pas &eacute;t&eacute; upload&eacute; correctement !';
    			 }
    		   } 
    		   else 
    		   { // pas d'extension ou mauvaise extension
    			 echo 'Mauvaise extension !';
    		   }      
           }
    	   else 
    	   { // Erreur lors de l'upload
             switch ($_FILES['aFile']['error']){
               case UPLOAD_ERR_INI_SIZE:
                  echo 'Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e 
                           pour upload_max_filesize dans php.ini.';
                  break;
               case UPLOAD_ERR_FORM_SIZE:
                  echo 'Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
                           pour MAX_FILE_SIZE dans le formulaire d\'upload.';
                  break;
               case UPLOAD_ERR_PARTIAL:
                  echo 'Le fichier n\'a &eacute;t&eacute que partiellement upload&eacute;.';
                  break;                            
               default:
                  echo 'Aucun fichier n\'a &eacute;t&eacute upload&eacute;.';
             } // switch
           }   
         }
    	 else 
    	 { // aucun fichier reçu
           echo 'Pas de fichier recu';
         }
       } // fin de réception de formulaire
    ?>
    Tout cela fonctionne parfaitement, en local.
    Dès que je place ce code sur mon serveur, j'accède bien à ma page web, jusque là aucun soucis, en revanche lors que le code php s'exécute, j'ai constamment cette erreur :
    Le fichier n'a pas été uploadé correctement !
    Je ne comprend pas pourquoi ce code s'exécute très bien en local et par sur mon site.
    Merci par avance pour votre aide.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Juste avant ton move_uploaded_file(), essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if( is_uploaded_file( $_FILES['aFile']['tmp_name'] ) ) {
       echo 'Fichier bien arrivé';
    }
    Si tu vois le message, je te conseille alors de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo $destination_dir.DIRECTORY_SEPARATOR.$destination_file;
    et de vérifier si:
    1) Le repertoire de destination existe sur ton serveur
    2) Vérifier les droits en écriture sur le répertoire en question

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    J'ai trouvé d'où provenait le problème.
    Je n'avait pas placer suffisamment de droit sur le dossier de destination.
    Donc forcément cela fonctionnait en local mais ne pouvait pas fonctionner sur le serveur.
    Mon pb est donc résolu.
    Merci quand même.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/05/2009, 19h19
  2. [Mail] Passer du local au serveur
    Par phpaide dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2006, 14h24
  3. [VB.Net] Transfert de fichier local vers serveur
    Par geros dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/02/2006, 16h14
  4. Regler heure locale du serveur
    Par sirbaldur dans le forum Langage
    Réponses: 1
    Dernier message: 06/02/2006, 17h36
  5. [DOS] copy disque local vers serveur
    Par totoche dans le forum Windows
    Réponses: 1
    Dernier message: 27/01/2006, 21h23

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