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 :

Récupérer le chemin d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut Récupérer le chemin d'un fichier
    Bonjour

    Je cherche à récupérer le chemin complet d'un fichier.
    Pour cela, j'ai un formulaire de type "file". J'ai placé "enctype="multipart/form-data"" dans mon formulaire également.
    Dans la variable $_FILES, il y a 5 propriétés dont le nom du fichier pointé, mais pas son chemin ! Est-il possible de le récupérer et comment ??

    Merci à vous !

  2. #2
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fic_info = pathinfo($_FILES["ton_input_file"]["name"]);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo $fic_info['dirname'];
    echo $fic_info['basename'];
    echo $fic_info['extension'];
    echo $fic_info['filename'];
    PATHINFO sur php.net

    pense à la FAQ !

  3. #3
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Hello et merci !

    Je vais essayer ça de suite...
    Pour la FAQ, j'y fais toujours un tour avant de poster sur le forum, je cherche aussi ailleurs sur le net y'a souvent des gens qui ont eu le même problème que moi.... mais là j'ai rien trouvé et comme il était tard, j'ai du passer à côté dans la FAQ.

    Thks !

  4. #4
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Re bonjour !

    Heuuu en fait ça va toujours pas.... la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = $_FILES['fichier']['name']
    contient uniquement le nom du fichier avec son extension et pas son chemin d'accès. Ainsi, si j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fich_info = pathinfo($fichier)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fich_info = pathinfo($_FILES['fichier']['name'])
    et bien l'appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $fich_info['dirname']
    ne me retourne qu'un point.

    Je butte à ce problème et j'arrive pas à m'en défaire.....

    J'ai cru voir sur un forum que ce que je veux faire n'était pas vraiment possible apparemment. Donc si je reviens à la base de ce que je veux faire :
    J'aimerais ouvrir une boite de dialogue genre "Ouvrir" ou "Enregistrer Sous" pour aller chercher un fichier. Je veux récupérer le chemin complet de ce fichier pour le placer comme lien hypertexte dans une page. Mon but est de créer le lien hypertexte du titre d'un feed RSS. Les nouveaux feeds seraient ajoutés sur une page oueb en spécifiant le titre, le lien (donc le fichier vers lequel je veux pointer) et bien sur une description du post.

    Des idées ??? Peut-être un script Java ? mais là ça commence à être compliqué non ... ?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Voyons si j'ai bien compris : tu veux que ton utilisateur puisse récupérer le chemin d'un fichier sur sa machine pour pouvoir le rentrer dans un champ de formulaire. C'est bien ça ?

  6. #6
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    ah désolé je n'avais pas bien compris ton probleme
    (si c'est bien ce que dit Celira).

    En effet, le chemin du fichier sur la machine cliente n'est pas envoyé.
    Tu peux peut etre t'en sortir en ayant un champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" id="le_chemin_complet" />
    et en faisant du javascript qui copierait la valeur de ton champ FILE dans le INPUT des qu'il y a une modif...

  7. #7
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    ok je vais essayer d'etre plus clair (desole pour les accents, mais mon clavier ne me le permet pas...)

    Sur un page oueb, j'ai un formulaire.
    Sur ce formulaire, je veux pouvoir cliquer sur un bouton pour que celui-ci m'ouvre une fenetre de dialogue pour selectionner un fichier (donc la meme chose qui si je faisais fichier->ouvrir sous word par exemple).
    Une fois ce fichier selectionne, je veux pouvoir le localiser, donc avoir son path au complet.
    Le chemin d'acces du fichier sera alors copie dans un fichier xml pour mon fux RSS afin de specifier un lien hypertexte (le lien associe au titre du nouveau feed de mon flux).

    Est-ce que c'est plus clair ??

    J'ai trouve sur un forum une personne qui voulait plus ou moins faire la meme chose que moi. Elle avait aussi un input type="file" pour le bouton et la boite de dialogue. Elle associait a l'input une action="scriptJava();" et apparemment
    reussissait a recuperer le contenu de l'input.

    Apres de nombreuses tentatives, j'y suis enfin parvenu, mais je me suis apercu que mon probleme, car il en reste toujours un, est bien ailleurs !!! En effet, si ca marche au poil sous IE, FF m'empeche d'avoir acces au chemin complet du fichier (pour des raisons de securite je suppose). Donc je me retrouve au point de depart avec FF car idealement, il faudrait que mon code fonctionne sur n'importe quel browser (ou fureteur comme vous voulez )

    Voilou

  8. #8
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    c'est avec quelle version d'IE que tu y arrives?
    Car IE7 n'en veut pas.

    et c'est plutot normal que les navigateurs n'en veuillent pas, on n'accède pas aux fichiers hors du serveur...

  9. #9
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    J'utilise IE8...

    Oui c'est normal et je comprends l'enjeu au niveau sécurité, sauf que j'ai pas encore trouvé de moyen pour arriver à mes fins....

  10. #10
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    Je pense que tu n'arriveras pas à gérer des liens vers la (les) machine(s) cliente(s). (mais bon là, 'je pense' n'est pas synonyme de vérité...)

    Est-ce que tu ne peux pas récupérer le fichier, l'enregistrer sur le serveur, et ainsi tu auras des liens qui marcheront ?
    (c'est sûr, il va te falloir de l'espace disque...)

  11. #11
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    ben la solution que je veux apporter est la suivante :

    On est une micro-entreprise. On a un serveur commun, serveur de données, en gros un espace disque sur un ordi commun quoi. Comme on partage ces données, j'aurais aimé qu'à chaque fois que qqn veut partager un fichier, qu'il le mette sur le serveur, et plutôt que de nous envoyer un mail à chaque fois avec le fichier en pièce jointe, il aurait juste à remplir le formulaire en spécifiant où est mis le fichier (lien hypertexte) et tenir tout le monde au courant par l'intermédiaire d'un flux RSS.
    Ainsi, on garde facilement une trace de tous les fichiers ajoutés, une description de ce qu'ils comportent, et un lien vers ledit fichier car si le nombre augmente, ça se peut qu'on ne s'y retrouve plus (je ferai surement une BD des fichiers après mais on en est encore pas là).
    Pour l'instant, le serveur php que j'utilise est WampServer, et faut voir avec mon responsable info comment je peux y mettre une page web pour utilisation interne exclusivement.

    Bref voilou, c'est pas simple, mais pas si compliqué non plus

  12. #12
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    oui pas compliqué a priori
    mais impossible pourtant.

    article ici

    FF ne récupere donc que le nom du fichier et pas le chemin.
    Les navigateurs tendent vers cela..
    si on fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="fic" id="fic" value="" onchange="alert(this.value);">
    sur IE, on va avoir par exemple "c:\tmp\un_rep\toto.txt"
    sur FF, on aura que "toto.txt".

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    @sebhm
    C'est à cause de la sécurité des navigateurs.

  14. #14
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    oui oui
    ce qui se comprend tout à fait.

    Donc impossible (je pense) de faire comme androz le souhaite

  15. #15
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    et ouais, c'est ce que je me suis aperçu ! à mon grand malheur d'ailleurs....

    Maintenant, est-ce que je pourrais pas juste mettre un script java qui ouvre une boite de dialogue du type "ouvrir un fichier" et récupérer le path ? Je ne pointerais pas sur un fichier du serveur et donc pas de souci de sécurité non ?

    J'ai remarqué aussi une autre différence entre FF et IE. Dans mon RSS, si le lien affecté au titre du feed est un fichier, la syntaxe pour FF est la suivante :

    file:///C:/path/filename

    alors que sous IE c'est plutôt :

    filename

    ce qui suppose qu'il faut que le fichier soit dans le même répertoire que la page.... je n'ai pas réussi à contourner le problème encore.

    Ah là là, maudite compatibilité de browser !!!

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2017, 10h01
  2. Récupérer le chemin d'un fichier
    Par koKoTis dans le forum Ubuntu
    Réponses: 19
    Dernier message: 22/10/2007, 17h46
  3. Réponses: 14
    Dernier message: 30/05/2007, 13h48
  4. [VBA_E] Récupérer le chemin d'un fichier ouvert
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2007, 17h30
  5. Réponses: 1
    Dernier message: 26/07/2006, 02h47

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