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 :

Probleme chemin dirname()


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut Probleme chemin dirname()
    Bonsoir,

    Disons que mon arborescence est comme ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    / = racine du site
    |
    |-- index.html
    |
    |-- secu
      |-- archives_z
      |       |-- 2001
      |-- fileupload.php
    Je suis donc dans mon fichier "fileupload.php" (qui se trouve dans le dossier "secu") et de là j'upload un fichier dans mon sous dossier "2001", en utilisant un dirname($path).

    Et je n'arrive pas du tout à le faire...
    -Si je fais $path="secu/"; Ca me le place dans secu (normal, ou presque)
    -Si je fais $path="archives_z/"; Ca me met une erreur
    -Si je fais $path="./archives_z/"; Ca me met une erreur
    -Si je fais $path="/archives_z/"; Ca me met une erreur
    -Si je fais $path="secu/archives_z/"; Ca me met une erreur

    bref, j'ai essayé plein de chose, rien ne marche...
    Voici l'zrreur en question:
    Warning: move_uploaded_file(secu/archives_z/planning_du_20100409181545.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\Programmes\wamp\www\secu\fileupload.php on line 18

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'D:\Programmes\wamp\tmp\php760E.tmp' to 'secu/archives_z/planning_du_20100409181545.jpg' in D:\Programmes\wamp\www\secu\fileupload.php on line 18
    Si ca peut vous aider, voici une partie de mon script de fileupload.php. La ligne 18 correspond a la derniere ligne présente ci dessous
    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
    $path = "secu/archives_z/";
    $nomOrigine = $_FILES['monfichier']['name'];
    $elementsChemin = pathinfo($nomOrigine);
    $extensionFichier = $elementsChemin['extension'];
    $extensionsAutorisees = array("jpeg", "jpg", "gif");
    if (!(in_array($extensionFichier, $extensionsAutorisees))) {
        echo "Le fichier n'a pas l'extension attendue";
    } else {    
        // Copie dans le repertoire du script avec un nom
        // incluant l'heure a la seconde pres 
        $repertoireDestination = dirname($path) ."/";
        $nomDestination = "planning_du_".date("YmdHis").".".$extensionFichier;
     
        if (move_uploaded_file($_FILES["monfichier"]["tmp_name"], 
                                         $repertoireDestination.$nomDestination)) {
    Je ne dirais pas non contre un peu d'aide
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    Allez savoit pourquoi, mais quand j'entre le code ci dessous, ca marche (toujours sous wamp, pas testé online, mais j'ai des doutes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $path = "../secu/archives_z/archives_z";
    Donc 2 questions :
    -Pourquoi ca marche ?
    -Est ce que ca marchera online
    -Est ce qu'il n'y a pas un chemin avec plus de logique histoire que ma page ne soit pas construit made in Mc Giver ?

    Merci a vous

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    le plus simple est de mettre le chemin absolu
    $path = "D:\Programmes\wamp\www\secu\archives_z\2001";

    tu n'a pas besoin de dirname().

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    Oui, en chemin absolu, pourquoi pas, même si je n'aime pas trop les absolus :p. Bref, je ferais ca et je l'adapterais une fois en ligne.
    Mais c'est quand meme bisarre cette histoir de chemin relatif qui ne marche pas, je serais curieux de savoir pourquoi.
    Je laisse le message en non résolu jusqu'a ce soir, histoire de peut etre avoir une réponse, et si rien je mettrais résolu.

    Merci

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    la variable $repertoireDestination renvois "secu/" est ce que ce chemin est accessible au fichier exécuter ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    Le dossier secu est protégé par un mot de passe (cf ci dessous). Mais vu que la session est ouverte, ca ne devrait pas poser de probleme ? (peut etre bien que oui alors^^).
    nb : le dossier archive n'est pas protégé par mdp, mais se trouve dans le dossier "secu"

    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
    <?php
    if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_USER']=="ricom" && $_SERVER['PHP_AUTH_PW']=="totto")
         {$auth=true;} 
    else
         {$auth=false;}    
    if (!$auth) {
          header( 'WWW-Authenticate: Basic realm="Compte gestionnaire"' );
          header( 'HTTP/1.0 401 Unauthorized' ); 
          print "<html><head><title> ACCES NON AUTORISE</title></head><body>";   
          print "<center>Authentification nécessaire</center></html>";  
          exit;
    }
    else {
     
    header ("Location: /secu/accueil.php");
     
    } 
    ?>

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

Discussions similaires

  1. [XL-2003] Probleme chemin d'acces
    Par Lordinho dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/06/2010, 15h00
  2. Réponses: 5
    Dernier message: 06/06/2008, 17h14
  3. new File(String) probleme chemin relatif / absolu
    Par rc_29 dans le forum Langage
    Réponses: 6
    Dernier message: 08/01/2008, 15h33
  4. probleme chemin d'acces dynamique
    Par thorakh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 05/12/2007, 13h38
  5. probleme chemin arrière plan
    Par TheRealMike dans le forum IHM
    Réponses: 3
    Dernier message: 13/03/2007, 14h02

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