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] Fichier Uploadé toujours à la racine du serveur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Par défaut [Upload] Fichier Uploadé toujours à la racine du serveur
    Bonjour,

    Quelque soit mon type de chemin de mon dossier de destination;

    '/www/Dossier/'
    './Dossier/'
    '../Dossier/'
    '/Dossier/'

    move_uploaded_file copie bien mes fichiers (après mise en forme et tests de conformité), mais... toujours à la racine du serveur !

    les droits de toute l'arborescence sont pourtant à 777.
    (Je m'étais fais piéger la semaine dernière!!)

    quelqu'un a-t-il une petite idée pour me dépanner ?

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    je dirais je te donne même le lien : Comment envoyer un fichier depuis le navigateur sur le serveur à travers un formulaire HTML ?

    As-tu fais comme ceci ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    ton code il ressemble a quoi?
    montre ton move_uploaded_file

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $chemin_destination = '../Dossier/';
    move_uploaded_file($_FILES['nom_du_fichier']['tmp_name'], $chemin_destination.$_FILES['nom_du_fichier']['name']);

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Par défaut
    Le formulaire d'envoi:

    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
       <form name="JUploadForm">
        <tr>
          <td>
                <applet code="JUpload.startup" archive="jupload.jar" width="980" height="400" mayscript="mayscript">
            <param name="actionURL" value="BDD_Photos_Internes_Test.php" />
          </applet>
          </td>
        </tr>
        <tr>
          <td height="19" colspan="2" align="left">
                <select name='selectSousCollection' tabindex='1' class='bouton'>
            <?php        while ($objLien1 = mysql_fetch_object($Result1))
                                            {
                                            echo "<option value='$objLien1->ID_Sous_Collection_Interne'>".$objLien1->Lib_Sous_Collection_Interne."</option>";
                                            }
                                            //pointage en début de résultat
                                            mysql_data_seek ($Result1, 0 ); ?>
          </select>
          </td>
        </tr>
      </form>
    Le script de traitement:

    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
     <?php
    //========= Accés à la base de données =========================================================*/
    require 'Admin/connect.php';
    /*========= Permet l'utilisation de toutes les variables de la feuille appelante ===============*/
    extract($_POST);
    /*==============================================================================================*/
    $Requete1 =  "SELECT * FROM visuel_photo_interne WHERE 1";
    $Result1 = mysql_query($Requete1) or die("Erreur dans la requête de lecture");
    /*==============================================================================================*/
     
    /*========= Variables ==========================================================================*/
    $aujourdhui = date("Y-m-d H:i:s");// 2001-25-10 15:27:32; sortie de WinBugXP
    $dossier_dest = "./Internes/";
    $extensions_ok = array('png','gif','jpg','swf');
    $taille_max = 2048000;
    /*==============================================================================================*/
     
    foreach($_FILES as $cle=>$objet)
    {
        /*========= Tests de conformité ==============================================================*/
         $tempName = $objet['tmp_name'];// Répertoire temporaire
         $realName = $objet['name'];// Extraction du nom
     
        $InfoChemin=pathinfo($realName);
     
        if (!in_array(strtolower($InfoChemin['extension']), $extensions_ok ))
        {
            $_SESSION['erreur'] = 'Sélectionne un fichier de type png, gif, swf ou jpg!';
            echo $_SESSION['erreur']."<br />";
            exit();
        }
        if ($_FILES[$cle]['size']>$taille_max)//Valeur dans le cas d'un tmp_name renseigné
        {
            $_SESSION['erreur'] = "La photo $realName a une taille supérieure à 2 Mo !";
            echo $_SESSION['erreur']."<br />";
            exit();
        }
        if ($_FILES[$cle]['error']==1)
        {
            $_SESSION['erreur'] = "La photo $realName a une taille supérieure à la valeur définie sur le serveur !";
            echo $_SESSION['erreur']."<br />";
            exit();
        }
        if ($_FILES[$cle]['error']==2)
        {
            $_SESSION['erreur'] = "La photo $realName a une taille supérieure à la directive de cette page !";
            echo $_SESSION['erreur']."<br />";
            exit();
        }
        if ($_FILES[$cle]['error']==3)
        {
            $_SESSION['erreur'] = "La photo $realName n'a été que partiellement téléchargée sur le serveur /n Informe immédiatement le webmaster !";
            echo $_SESSION['erreur']."<br />";
            exit();
        }
        /*========= Mise en forme du nom d'image ========================================================*/
        $image = basename($realName);
        // Formatage du nom de fichier - Enlever les accents
        $image = strtr($image,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        // Formatage du nom de fichier - Remplacer les caracteres autres que lettres, chiffres et points par _
        $image = preg_replace('/([^.a-z0-9]+)/i', '_', $image);
        // Formatage du nom de fichier - Place toutes les lettres en minuscule sauf la première
        $image=ucfirst(strtolower($image));
        /*==============================================================================================*/
     
        /*========= Insertion dans la table des photos internes ========================================*/
        $Requete2 =  "INSERT INTO visuel_photo_interne (Nom_Image,Code_Sous_Collection_Interne,Date_Insertion) ";
        $Requete2 .= "VALUES ('$image','$selectSousCollection','$aujourdhui') ";
        $Result2 = mysql_query($Requete2) or die("Erreur dans la requête d'insertion, contacte le Webmaster !");
        /*==============================================================================================*/
     
        echo "<br>Traitement du fichier $realName...\n";
        flush();
     
        /*========= Copie de l'image dans le répertoire ================================================*/
        if(!move_uploaded_file($tempName,$dest_dossier.$image))
        {
                $_SESSION['erreur'] = "La photo<strong>$tempName</strong> n'a pas pu être copié dans le répertoire ".$dest_dossier." !<br />";
                echo $_SESSION['erreur'];
                exit();
        }
        /*==============================================================================================*/
     
        echo "OK !\n";
        flush();
    }
     
     
    ?>
    Voilà. Tout ça fonctionne, mais $dossier_dest = "./Internes/"; n'agit pas!

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    dossier_dest doit etre comme ceci : 'dossier/'

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Par défaut
    Bon, je viens d'essayer, ça n'a rien changé.

    Le multiple Upload est ok. Les fichiers sont copiés à la racine avec mes *.php.

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

Discussions similaires

  1. [Upload] Problème Upload Fichiers via html
    Par Typhon dans le forum Langage
    Réponses: 3
    Dernier message: 11/02/2007, 12h52
  2. [Upload] PB upload fichiers
    Par Expert_PHP dans le forum Langage
    Réponses: 4
    Dernier message: 30/10/2006, 13h12
  3. [Upload] pb upload fichier sans erreur
    Par guns17 dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2006, 15h30
  4. [Upload] Probleme upload fichier
    Par grenatdu55 dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 01h30
  5. [Upload] Upload fichier upload.php?fichier=c:\toto.sql
    Par enibris dans le forum Langage
    Réponses: 4
    Dernier message: 04/03/2006, 20h43

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