Chemin absolu avec input type=file : bug ou feature ?

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Invité

Chemin absolu avec input type=file : bug ou feature ?

Message par Invité »

Bonsoir à tous,
J'ai rencontré un petit problème : dans une page je mets un formulaire avec un champ input avec type=file pour sélectionner un fichier et transmettre le nom de celui-ci à une page PHP.
Tout se passe normalement dans la page HTML : le champ de texte correspondant affiche bien le chemin dans son entier, mais s'il s'agit d'un chemin absolu, seul le nom du fichier est passé dans la variable. Par exemple, je navigue jusqu'au fichier c:\documents\exemples\tmp\fichier.txt, la variable transmise ne contiendra que fichier.txt (alors que le champ de texte affiche bien c:\documents\exemples\tmp\fichier.txt). En revanche si je saisis tmp\fichier.txt (en supposant que le script PHP se trouve dans c:\documents\exemples\), la variable transmise vaut bien c:\documents\exemples\, et tout fonctionne.
Au début, j'avais pensé à un pb au niveau du PHP, mais j'ai fait le test avec IE et tout se passe "normalement" (le pb se présente avec Mozilla 1.7.1. et Firefox 0.9.2)
J'ai "googlé" un peu sur le sujet, mais sans succès : donc il y a peut-être un truc évident qui m'échappe.
Merci pour vos lumières !
Vlad
Voici le code HTML/PHP concerné :

dans la page HTML
<form method="post" name="formselec" action="detraitement.php">
<input name="fichier" tabindex="1" type="file" size="40"/>
<input value="Envoyer" type="submit">
</form>
Page PHP
<? $nom_fichier = $HTTP_POST_VARS['fichier']; ?>

<body>
<p>Nom du fichier: <? echo $nom_fichier; ?></p>
</body>
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message par jv2759 »

Je crois que cette variable a tout simplement aucun interrais en soit...

Le mieux c'est de regarder ici :

http://www.nexen.net/docs/php/annotee/f ... post_files
Inscrit sur la liste des abonner absent...
Invité

Message par Invité »

Merci de ta réponse et de l'url, mais cela ne semble pas répondre à mon problème : je ne veux pas uploader le fichier sur le serveur, je veux juste indiquer son emplacement au script PHP. J'oubliais de préciser : je travaille en local (sur un intranet).
Vlad
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

:arrow: Je ne crois pas que tu puisses te servir du gestionnaire de fichier pour seulement indiquer l'emplacement d'un fichier SANS l'uploader. Il ne me semble pas avoir lu dans la document HTML qu'une telle chose était possible.
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message par jv2759 »

alors file n'est pas fait pour...

file est fait pour récupérer un fichier...

Donc imagine que tu pointe sur un fichier de 1go, il vas chercher à en faire une copie... Et risque de planter s'il n'as pas le droit de télécharger plus de 2Mo...

A mon avie le mieux c'est d'extraire le <input type="file" du <form> Et utiliser un bouton normale qui iras chercher l'adresse du fichier et le stockeras dans un hiden.

Car si le <input type="file" reste dans le form tu auras téléchargement, rapide puisque qu'en local, mais inutile...
Inscrit sur la liste des abonner absent...
Invité

Message par Invité »

Merci beaucoup. A l'avenir, je vais tâcher de RTFM un peu plus consciencieusement ;-) En fait, mon système est un peu bancal, parce que ça ne peut marcher que lorsque les fichiers en question sont sur des disques partagés accessibles depuis le client et le serveur.
Merci encore pour vos avis d'expert.
Vlad
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message par jv2759 »

tu veux faire cuoi exactement. Car eventuelement télécharger le fichier peux être une bonne chose, car tu en as une copie en local (local pour php s'entend) Et là tu peux en faire ce que tu veux...
Inscrit sur la liste des abonner absent...
Vlad

Message par Vlad »

Ce dont j'ai besoin c'est de traiter des fichiers de texte, qui sont sur des disques du réseau local, donc accessibles à la fois par les clients et par le serveur sur lequel tourne PHP : donc du point de vue de PHP, les fichiers sont déjà "locaux".
En fait, ce que je vais faire, c'est juste un champ de texte normal dans le formulaire pour le nom des fichiers, et tout devrait fonctionner.
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

Oui, c'est ce qu'il faut faire. :)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Google [Bot] et 5 invités