Page 1 sur 2

Récupérer le chemin complet d'un fichier sur un serveur

Posté : 03 sept. 2008, 00:06
par Luke Sonore
Bonsoir la Communauté,

Dans le cadre de la réalisation d'une application intranet, j'ai à résoudre la problématique suivante :

1- Sur une page, l'utilisateur clique sur un bouton qui va lui ouvrir un explorateur de fichiers.
2- Grâce à cet explorateur, l'utilisateur va naviguer dans l'arborescence réseau et sélectionner un fichier texte (on suppose que tous les droits d'accès et permissions nécessaires sont ok).
3- L'utilisateur clique sur le bouton ok de l'explorateur pour valider son choix. L'explorateur se ferme.
4- Le chemin complet du fichier choisi est affiché sur la page (dans un input par exemple...?).
5- L'utilisateur clique sur un bouton de validation finale, situé lui aussi sur la page.
6- Suite à cette dernière action, l'application considère le chemin et traite le fichier.

Quelles solution me conseilleriez-vous pour la réalisation des étapes 1 a 5? (la 6 est déjà résolue).

J'ai (un peu vainement) tenté de "bricoler" un flux en utilisant un input de type file. J'ai bien un explorateur de fichier, puis l'inscription correcte du chemin dans le input. Mais la suite me pose problème et ne me donne pas satisafaction. De plus, je pense que l'utilisation d'un input file doit être résérvé à l'upload de fichiers (ce que je ne souhaite pas faire). Il ne me semble donc pas très judicieux de détourner le input file de sa fonction originelle...

Qu'en pensez-vous??
En vous remerciant par avance pour vos remarques et suggestions.

Re: Récupérer le chemin complet d'un fichier sur un serveur

Posté : 03 sept. 2008, 00:29
par @rthur
Bonjour,
6- Suite à cette dernière action, l'application considère le chemin et traite le fichier.
ça ce n'est pas possible avec des composants HTML pour des raisons de sécurité.

2 possibilités :
- un module genre applet java qui pourrait avoir accès à l'arborescence côté client et te renvoyer le chemin comme tu le souhaites
- un script PHP qui viendrait reproduire en HTML l'arborescence réseau

Posté : 03 sept. 2008, 00:38
par Luke sonore
Bonsoir @rthur,

Je n'y connais rien en java. J'aurais donc tendance à ne pas m'y risquer...
Mais pour ta 2ème suggestion (reproduction de l'arborescence réseau), pourais-tu stp me préciser la chose?

Cordialement.

Re: Récupérer le chemin complet d'un fichier sur un serveur

Posté : 03 sept. 2008, 01:09
par sadeq
Bonsoir la Communauté,

Quelles solution me conseilleriez-vous pour la réalisation des étapes 1 a 5? (la 6 est déjà résolue).
Bonsoir,

Si la 6 est résolue alors tu as terminé car les étapes de 1 à 5 sont des fonctions intégrées dans le champ INPUT de type FILE. Voici le code HTML :

Code : Tout sélectionner

<input type="file" name="nomCompletFichier" />
Ce champ affiche en fait, une zone de texte accompagnée autmatiquement d'un bouton "Parcourir" qui lance automatiquement l'explorateur de fichiers intégré à la machine du client et permet de naviguer dans les disques et sélectionner un fichier précis.

Posté : 03 sept. 2008, 09:49
par Luke Sonor
Bonjour Sadeq,

Si la 6 est résolue alors tu as terminé car les étapes de 1 à 5 sont des fonctions intégrées dans le champ INPUT de type FILE
Pas vraiment. L'étape 6 consiste à traiter les informations du fichier choisit. C'est un autre script. Pour le rédiger, j'ai ecrit en dur le chemin du fichier afin que le script sache où travailler. Et ce script fonctionne parfaitement. Le problème (tu l'auras compris) c'est que le fichier doit pouvoir être choisi dynamiquement par l'utilisateur. D'ou les points 1 à 5.

Merci pour tes infos sur le input file, mais je connaissais tout ça.
D'après la documentation, lorsque le input file est rempli (avec le chemin du fichier) et que l'on valide le formulaire contenant l'input, le fichier est immédiatement traité, puisque qu'il est copié en tant que fichier temporaire sur le serveur (en attente de déplacement vers sa destination finale). Ce n'est donc pas le chemin complet du fichier qui est considéré, mais seulement le fichier contenu dans ce repertoire temporaire.
Ceci n'arrange donc pas mes affaires, puisque je ne souhaite pas faire d'upload.
A moins (mais là ça me parait tordu...) que d'empêcher le fichier d'être uploadé...mais bof...ca me paraît vraiment bancal....

Posté : 03 sept. 2008, 10:34
par B.Moncef
Ceci n'arrange donc pas mes affaires, puisque je ne souhaite pas faire d'upload.
Tu souhaites faire quoi alors ? traiter le fichier directement sur le pc du visiteur ?

Posté : 03 sept. 2008, 12:21
par Luke Sonore
Bonjour,
Tu souhaites faire quoi alors ? traiter le fichier directement sur le pc du visiteur ?
Je souhaite simplement accéder aux informations contenues dans le fichier pour pouvoir les stocker en base.
Mais encore une fois, la récupération des données et leur stockage (étape 6) n'est pas le problème, puisque j'ai déjà rédigé le script permettant de faire celà.

Posté : 03 sept. 2008, 13:01
par sadeq
Bonjour Sadeq,

Pas vraiment. ....
....
Ceci n'arrange donc pas mes affaires, puisque je ne souhaite pas faire d'upload.
A moins (mais là ça me parait tordu...) que d'empêcher le fichier d'être uploadé...mais bof...ca me paraît vraiment bancal....
Ok, l'Input File est dans ce cas grillé car non seulement il ne sert que pour un upload mais aussi, coté serveur il n'envoi pas le chemin complet d'origine mais seulement le nom propre et les données contenues.

Je comprends ce que tu veux faire : tu veux transmettre seulement le chemin d'accès (réseau) + le nom du fichier sélectionné que ton script traite puisque tu es dans un INTRANET et non INTERNET.

Pour cela il faut personnaliser mais pour l'instant je ne peux dire comment j'ai pas le temps ... A+ tard

Posté : 03 sept. 2008, 15:01
par Luke Sonore
Je comprends ce que tu veux faire : tu veux transmettre seulement le chemin d'accès (réseau) + le nom du fichier sélectionné que ton script traite puisque tu es dans un INTRANET et non INTERNET.
Oui, c'est exactement ça :D

Posté : 03 sept. 2008, 19:57
par @rthur
Mais pour ta 2ème suggestion (reproduction de l'arborescence réseau), pourais-tu stp me préciser la chose?
Point de départ:
http://fr.php.net/glob

Regarde les exemples laissés dans les commentaires ça sera plus parlant.
Si ton arborescence est peu importante, tu peux utiliser les exemples qui utilisent la récursivité pour parcourir les sous-répertoires.
Si ton arborescence est importante, il conviendra d'utiliser plutôt de l'Ajax pour charger le contenu des répertoires à la demande.

Dans les 2 cas, tu peux utiliser glob() pour la partie PHP :)

Posté : 04 sept. 2008, 10:10
par Luke Sonore
Salut @rthur,
Point de départ:
http://fr.php.net/glob
cette solution m'a l'air très interessante. Merci pour cette suggestion, je vais étudier ça de près.

A+

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 04 sept. 2008, 10:31
par sadeq
Voici un lien, ou il y a une ébauche de solution pour explorer des fichiers : http://www.phpfrance.com/forums/voir_su ... plorer.php

Posté : 04 sept. 2008, 10:45
par Luke Sonore
Voici un lien, ou il y a une ébauche de solution pour explorer des fichiers : http://www.phpfrance.com/forums/voir_su ... plorer.php
Ton lien ne marche pas on dirait...

Posté : 04 sept. 2008, 22:06
par @rthur
Voici un lien, ou il y a une ébauche de solution pour explorer des fichiers : http://www.phpfrance.com/forums/voir_su ... plorer.php
Ton lien ne marche pas on dirait...
Il marche chez moi en tout cas ;)

Posté : 04 sept. 2008, 22:53
par Luke Sonore
Il marche chez moi en tout cas ;)
non désolé...j'obtiens un formulaire de login.
Une fois loggé, un message m'informe que "le message ou le sujet demandé n'existe pas" :?