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 :

Transfert de fichier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    al1
    al1 est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Par défaut Transfert de fichier
    Bonjour,

    J'ai un petit soucis avec un code classique que j'ai trouvé sur le net.
    Il permet d'envoyer un fichier de mon poste (client) vers le serveur.

    Voici ma 1 ère page :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form enctype="multipart/form-data" action="2.php" method="post">
     
      <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
     
      Envoyez ce fichier : <input name="userfile" type="file" />
      <input type="submit" value="Envoyer le fichier" ;/>
     
     
    </form>

    et ma page 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
    <?php
    // En PHP < 4.1.0, $HTTP_POST_FILES doit être utilisé
    //    à la place de $HTTP_POST_FILES.
     
     
     
    $uploaddir ='\\intranet\Fr\NewWeb\IT\test';
    $uploadfile = $uploaddir . basename($HTTP_POST_FILES['userfile']['name']);
     
    echo '<pre>';
    if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "Le fichier est valide, et a été téléchargé
               avec succès. Voici plus d'informations :\n";
    } else {
        echo "Attaque potentielle par téléchargement de fichiers.
              Voici plus d'informations :\n";
    }
     
    echo 'Voici quelques informations de déboguage :';
    print_r($HTTP_POST_FILES);
     
    echo '</pre>';
     
    ?>
    Jutilise du php 4.0

    Voici le résultat du print_r

    Attaque potentielle par téléchargement de fichiers.
    Voici plus d'informations :
    Voici quelques informations de déboguage :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Array
    (
        [userfile] => Array
            (
                [name] => bom.JPG
                [type] => image/jpeg
                [tmp_name] => none
                [size] => 0
            )
    )


    Le fichier ne se transfert pas.
    Pour info mon serveur est en windows.
    Perso j'ai un doute sur cette variable uploaddir

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Fais un et tu risques de voir apparaître :
    \intranet\Fr\NewWeb\IT\test
    il te manque le second anti-slash car il est échappé par le premier.

  3. #3
    al1
    al1 est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Par défaut
    Merci trotters213 (trop fort ton avatar)

    J'ai fais quelques modifs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $uploaddir ='\\\intranet\Fr\NewWeb\IT\test\\';
    j'ai essayer aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $uploaddir ='c:\Fr\NewWeb\IT\test\\';
    ça aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $uploaddir ='c:\\Fr\NewWeb\IT\test\\';
    j'ai toujours le même message.

    Quand je fais un print de $uploadfile

    c:\Fr\NewWeb\IT\test\bom.JPG

    ou

    \\intranet\Fr\NewWeb\IT\test\bom.JPG

    Pourtant mon chemin est correct

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Mais tu as une erreur ou c'est juste que rien se télécharge ?

    Tu utilises quelle version de PHP (précisément) parce que move_uploaded_file n'est utilisable que depuis la 4.0.3 et tu dis utiliser la 4.0.

    Regarde également la valeur de retour de move_uploaded_file et pour finir regarde tes variables safe mode et open_basedir dans ton php.ini, ça peut venir de là.

    PS : merci pour l'avatar

  5. #5
    al1
    al1 est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Par défaut
    Le problème est que le fichier ne se transfert pas de mon poste client vers le serveur. Donc move_uploaded_file renvois FAUX.

    Oupss j'ai la version 4.07. Et la fonction move_uploaded_file peut être utilisé sur cette version.

    Sur le php.ini

    open_basedir ==> no value no value
    safe mode ==> off off

    Ca viendrais de ces variables.
    Il faudrait mettre safe_mode à On
    et pour open_basedir ?

  6. #6
    al1
    al1 est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Par défaut
    J'ai modifier la variable $uploaddir

    $uploaddir ='c:/Fr/NewWeb/IT/test/';

    C'est bizarre car quand je prends un fichier .txt ou .xls ça marche.
    Les .jpg, .doc ou .pdf ... ne se tranfert pas et ma fonction move_uploaded_file renvois False ?????

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 15/05/2007, 19h35
  2. transfert de fichier P2P : connexion ????
    Par Stephen54 dans le forum Développement
    Réponses: 8
    Dernier message: 11/02/2005, 01h31
  3. Transfert de fichiers par sockets
    Par Kaori dans le forum C++
    Réponses: 19
    Dernier message: 26/01/2005, 14h58
  4. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 18h53
  5. [Socket]Transfert de fichier
    Par Aminos dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 19/04/2003, 14h58

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