Chemin d'un fichier

Petit nouveau ! | 1 Messages

30 déc. 2012, 12:49

Bonjour,
J'ai un problème de chemin de fichier.
Dans mon script, je sélectionne un nom de fichier dans une liste, puis je le concatène avec le chemin où il se trouve sur le disque, comme ceci :

$fichier = "C:\Users\Patrick\Releves\\".$fichier;

Quand je fais echo $fichier; j'ai bien mon chemin complet avec le fichier choisi :

C:\Users\Patrick\Releves\Toto.txt

et quand je veux le faire afficher avec

print("<object data=\"$fichier\" type=\"text/plain\" width=100% height=500></object>");

je n'ai rien qui s'affiche à l'écran, j'ai donc essayé : $fichier = realpath($fichier);
mais c'est la même chose.

J'ai copié ce fichier Toto.txt dans le répertoire www (par défaut du php) et là çà marche, j'affiche bien mon fichier à l'écran.

Je dois donc avoir un problème de chemin, mais comment l'écrire ?? qu'ai je fait qui ne va pas dans $fichier = "C:\Users\Patrick\Releves\\".$fichier; qui s'affiche pourtant bien correctement avec l'echo ??

Merci de vos réponses.
Cordialement.

Mammouth du PHP | 571 Messages

30 déc. 2012, 15:09

bonjour,
à mon avis t'as pas un problème de chemin car la balise object est destinée à afficher un contenu flash(musique,image,video...) ce qui n'est pas ton cas.toutefois pour vérifier que le chemin est bien pris en compte il te suffit d'aller sur ton navigateur et regarder le code source de la page web.

theo1617
Invité n'ayant pas de compte PHPfrance

30 déc. 2012, 15:44

Sur le code source de la page web
quand j'indique le chemin $fichier = "C:\Users\Patrick\Releves\\".$fichier;, j'ai dans <object data="C:\Users\Patrick\Releves\Toto.txt" ...
et là mon fichier ne s'affiche pas à l'écran
par contre quand je ne mets pas le chemin, puisque j'ai fait une copie dans www, j'ai dans <object data="Toto.txt" ...
et là çà marche, j'affiche bien le fichier.
Donc c'est la manière d'écrire ce chemin qui pose problème, mais comment l'écrire ???
Merci

ViPHP
xTG
ViPHP | 7331 Messages

30 déc. 2012, 16:58

Il faut doubler les \ pour qu'ils soient interprétés. ;)

theo1617
Invité n'ayant pas de compte PHPfrance

30 déc. 2012, 17:16

çà n'y change rien, toujours pas d'affichage, sniff

Mammouth du PHP | 571 Messages

30 déc. 2012, 17:48

je commence à mieux saisir l'origine du problème.en fait l'attribut data prend un chemin relatif et non un chemin absolu(ce que tu fais)raison pour laquelle ton fichier reste introuvable.
// ex:  www/monprojet/index.php
 print("<object data=\"releve/toto.txt\" type=\"text/plain\" width=100% height=500>fichier introuvable</object>");
//le fichier toto.txt est dans  www/monprojet/releve/( www/monprojet/releve/toto.txt)

theo1617
Invité n'ayant pas de compte PHPfrance

30 déc. 2012, 18:02

Et alors comment faut il que je lui indique ??
Merci

Mammouth du PHP | 571 Messages

30 déc. 2012, 18:16

Et alors comment faut il que je lui indique ??
Merci
il faut indiquer un chemin relatif(relatif au répertoire de ton projet) c-a-d un chemin qui ne commence pas depuis la racine du genre C:\Users\Patrick\...
par exemple tu places le fichier toto.txt dans le répertoire qui contient ce fichier:
  print("<object data=\"toto.txt\" type=\"text/plain\" width=100% height=500>fichier introuvable</object>");
sinon donne moi l'arborescence de ton projet?

theo1617
Invité n'ayant pas de compte PHPfrance

30 déc. 2012, 18:32

Mon projet (script.php) est dans C:\Program Files (x86)\EasyPHP-5.3.3.1\www
et mes fichiers (une centaine) sont dans C:\Users\Patrick\Gen\Releves
c'est pour çà que je veux pas déplacer une centaine de fichiers sous un sous dir de www.
Et est ce le mklink de windows marcherait ? faire un dossier sous www et le lier avec mon dossier contenant les fichiers ??
Merci

theo1617
Invité n'ayant pas de compte PHPfrance

30 déc. 2012, 19:02

Bon çà marche, j'ai fait un mklink sous windows qui m'a créé un lien avec un sous répertoire de www qui pointe sur mon répertoire de mes fichiers et dans mon script j'ai rajouté ce sous répertoire devant le nom de mon fichier.
Merci de votre aide.