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 :

upload un fichier


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 126
    Par défaut upload un fichier
    salut tout le monde.
    je veux copier ou bien déplcer un fichier X.X sous un répértoir bien choisie.
    j'utilise le PHP4.3.10 qui est installé sous easyphp1.8 .
    le problème est que apés l'eécution du script il ne me donne rien et il ne me copie pas le fichier.veuillez m'aidé psq il peux etre problème de droit ou bien autre .

    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
     
     
    <form method="POST" action="upload.php" enctype="multipart/form-data">
     
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    Fichier : <input type="file" name="fichier">
    <input type="submit" name="envoyer" value="Envoyer le fichier">
     
     
     
     
    $uploaddir = 'C:/www/hotellerie/images/video/';
    $uploadfile = $uploaddir . basename($_POST['fichier']['name']);
     
    echo '<pre>';
    if (move_uploaded_file($_POST['fichier']['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ébogage :';
    print_r($_POST);
     
     
     
    </form>



    merci bien d'avance et bon code

  2. #2
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    As-tu activé le mode DEBUG de php pour pouvoir plus facilement localiser l'erreur (c'est dans le fichier php.ini je crois)?


    Essayes comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $uploaddir = 'C:/www/hotellerie/images/video/';
     
    echo '<pre>';
    if (move_uploaded_file($_POST['fichier']['tmp_name'], $uploaddir)) {
        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";
    }

  3. #3
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Lorsqu'on utilise un formulaire d'upload,
    la variable super-globale à utiliser
    n'est plus $_POST,
    mais $_FILES.

    Ce qui donne pour ton exemple :
    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 (!empty($_FILES['fichier'])) {
    $uploadfile = dirname(__FILE__)."/". basename($_FILES['fichier']['name']);
    echo '<pre>';
     
    if (move_uploaded_file($_FILES['fichier']['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ébogage :';
    print_r($_FILES);
    }
    ?> 
     
    <form method="post" action="" enctype="multipart/form-data">
    Fichier : <input type="file" name="fichier"/>
    <input type="submit" name="envoyer" value="Envoyer le fichier">
    </form>
    Fred

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 126
    Par défaut
    bonjour tout le monde et merci bien .
    finalement j'ai pu résoudre mon problème.
    ce code m'a aidé beaucoup:
    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
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    <?php
    print("<HTML><BODY>");
     
    function taille_nom($nom)   // permet de tronquer le nom du fichier si il est trop long.
    {
    $temp=$nom;
    if (strlen($nom)>30)
    {
    $nom=substr($temp,0,27);
    $nom=$nom."...";
    }
    return $nom;
    }
     
    function taille($taillett)               // retourne la taille arrondie et avec l'unité à la fin.
    {
    $taillett=$taillett/1024;
    if ($taillett > 1024)
    {
    $taillett=$taillett/1024;
    $taillett=round($taillett*100)/100;
    $taillett=$taillett." Mo";
    }else
    {
    $taillett=round($taillett*100)/100;
    $taillett=$taillett." Ko";
    }
    return $taillett;
    }
     
    if(isset($_POST["NOM_DOSSIER"])){            // qd on reviens en arriere,
    $temp=strlen($_POST["NOM_DOSSIER"]);            // on verifie si les 2 derniers caractères
    $temp2=substr($_POST["NOM_DOSSIER"],-2);         // ne sont pas .. 
    if ($temp2=="..")                               // par la suite on recherche le dernier '/'
    {                                  // pour trouver quel est le dossier parent.
    $temp2=substr($_POST["NOM_DOSSIER"],0,($temp-3));
    $ou=strrpos($temp2,"/");
    $dossier=substr($temp2,0,($ou+1));            // et on ecrit dans $dossier.
    }else
    {
    $dossier=$_POST["NOM_DOSSIER"]."/";}
    }else
    {
    $dossier="../";         // mon prog n'est pas stocké sur la racine
    }                            // d'où un retour en arrière. A adapter
     
    if(isset($_POST["SUPPR"])){
    if($_POST["SUPPR"]!=""){               // nom du nouveau répertoire courant
    unlink($_POST["SUPPR"]);               // ou suppression d'un fichier.
    $temp=strlen($dossier);
    $dossier=substr($dossier,0,($temp-1));
    }
    }
     
    if(isset($_FILES['userfile'])){
    if($_FILES['userfile']['size']>0){                           // reception du nouveau fichier.
    $nom_fichier=strtr($_FILES['userfile']['name'], " ", "_");
    $nom_fichier=strtr($_FILES['userfile']['name'], "  ", "_");
    $nom_fichier=strtr($_FILES['userfile']['name'], "$", "-");
                             // pour ne pas avoir de nom bizare.
    $savefile= $_POST["REP"].$nom_fichier;
    $temp = $_FILES['userfile']['tmp_name'];
    move_uploaded_file($temp, $savefile);
    $dossier=$_POST["REP"];
    }
    }
     
    // pour afficher en tête de votre page un descriptif
    print("<div id='tete_table' style='position:absolute;top:0px;left:40px;'>
    <TABLE rules='none' frame='void'><TR>
    <TD align='left' width='200'><small>Fichier</small></TD>
    <TD align='right' width='35'><small>Taille</small></TD>
    <TD align='right' width='100'><small>Date</small></TD>
    </TR></TABLE></div>");
     
    print("<div id='1' style='position:absolute;top:20px;left:20px;'>
    <img id='image_dir1' src='image_dir.JPG' width='17' height='15' border='0'><b>
    <font color=blue><small> $dossier </small></font></b><BR></div>");
    if($dossier!="../")  // pour empecher de remonter plus haut que la racine.
    {
    print("<div id='2' style='position:absolute;top:40px;left:40px;'>
    <img ondblclick=javascript:fsubmit('$dossier..','');
        id='image_dir2' src='image_dir.JPG' width='17' height='15' border='0'>
    <font color=blue><small> .. </small></font></div>");
    $position=40;
    }else
    {
    $position=20; // pour rearanger correctement les fichiers.
    }
     
    $rep=opendir($dossier);
    $taille_totale=0;
    $i=0;$j=0;
    while(false !== ($nom= readdir($rep))) 
    {
    if (($nom!=".") and ($nom!=".."))
    {
    $chemin=$dossier.$nom;
    if (is_dir($chemin)) // s'il s'agit d'un répertoire 
    {
    $tab_dossier[$i]=$nom;
    $i++;
    }else   // sinon
    {
    $tab_fichier[$j]=$nom;
    $j++;
    }
    }
    }
    if(isset($tab_dossier)) sort($tab_dossier);      
       // trie les tableaux par ordre alphabétique si ils éxistent.
    if(isset($tab_fichier)) sort($tab_fichier);
     
    $temp_taille=sizeof($tab_dossier);
    for ($i=0;$i<$temp_taille;$i++)
    {
    $nom=$tab_dossier[$i];
    $chemin=$dossier.$nom;               // ya plus qu'a afficher les dossiers
    $position+=20;          // on n'oublie pas d'incrémementer
    print("<div id='dir_$position'
        style='position:absolute;top:$position;left:40px;'>
    <img ondblclick=javascript:fsubmit('$chemin','');
        id='image_dir_$i' src='image_dir.JPG' width='17' height='15' border='0'>
    <font color=blue><small> $nom </small></font></div>");
    }
     
    $position+=20;
    print("<div id='table' style='position:absolute;top:$position;left:38px;'>
    <TABLE rules='none' frame='void'></div>");
    // on n'affiche pas les bord des cellules
     
    $temp_taille=sizeof($tab_fichier);
    for ($j=0;$j<$temp_taille;$j++)
    {
    $nom=$tab_fichier[$j];
    $chemin=$dossier.$nom;
    $nom_bis=taille_nom($nom);   // on réduit la taille du nom
    $taille_fichier=filesize($chemin); // on calcul la taille du fichier
    $taille_totale+=$taille_fichier;  // et la taille totale
    $taille_fichier=taille($taille_fichier);         // ya plus qu'a afficher les fichiers dans la table
    $date_=date("d/m/Y  H:i",filectime($chemin)); //la date
    print("<TR><TD align='left' valign='bottom' width='200'>
    <img id='image_file_$j' src='image_file.JPG' alt=$nom width='15' height='18' border='0'>
    <A href=$chemin target='_blank'>
    <small> $nom_bis </small></A></TD>
    <TD align='right' valign='bottom'><small> $taille_fichier
    </small></TD>
    <TD align='right' valign='bottom' width='100' >
    <small> $date_ </small></TD>
    <TD width='20' align='right' valign='bottom'>
    <img id='image_file_$j' src='image_suppr.JPG'
         alt='supprimer ce fichier' width='13' height='13'
         border='0' ondblclick=javascript:fsubmit('$dossier','$chemin'); >
    </TR>");
    }
    closedir($rep); // on oublie pas de fermer le répertoire
    $taille_totale=taille($taille_totale); // on affiche la taille totale
    print("<TR><TD align='left' valign='bottom' width='200'><small>Taille totale: </small></TD>
    <TD align='right' valign='bottom'>
    <small> $taille_totale </small></TD></TR>");
    print("</TABLE><BR>");
     
    print("<CENTER><FORM METHOD='POST' ENCTYPE='multipart/form-data'>");
    print("<INPUT TYPE=HIDDEN NAME='REP' VALUE=$dossier>");// formulaire upload nouveau fichier.
    print("<INPUT TYPE=FILE NAME='userfile'><BR>
    <INPUT TYPE=SUBMIT value='Enregistrer le fichier'>");
    print("</FORM></CENTER>");
     
    print("<script language=javascript>");
    print("function fsubmit(value_p,value_s)");
    print("{");
    print("document.forms['formulaire'].NOM_DOSSIER.value=value_p;");
    print("if (value_s!=''){");
    print("document.forms['formulaire'].SUPPR.value=value_s;}");// pour envoyer les formulaires cachés.
    print("document.forms['formulaire'].submit();");
    print("}");
    print("</script>");
     
    print("<FORM METHOD='POST' NAME='formulaire' ENCTYPE='multipart/form-data'>");
    print("<INPUT TYPE=HIDDEN NAME=NOM_DOSSIER VALUE=''>");
    print("<INPUT TYPE=HIDDEN NAME=SUPPR VALUE=''>");      // formulaire caché pour transmettre
     // les infos sur le nouveau répertoire courant ou fichier 
    print("</FORM>");
    print("</BODY></HTML>");
     ?>
    merci encore une fois et bon code.

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

Discussions similaires

  1. [FTP] Problème pour uploader un fichier
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/01/2008, 22h21
  2. Upload de fichier par XMLHTTP
    Par Immobilis dans le forum ASP
    Réponses: 6
    Dernier message: 21/01/2005, 17h02
  3. upload de fichier
    Par 120 dans le forum ASP
    Réponses: 16
    Dernier message: 21/06/2004, 12h07
  4. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 11h55
  5. Upload de fichiers
    Par GDVL dans le forum ASP
    Réponses: 4
    Dernier message: 03/06/2004, 12h44

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