lire un fichier sur un PC

Eléphanteau du PHP | 22 Messages

28 avr. 2005, 00:22

Bonsoir tout le monde,

j'ai un petit problème avec la fonction fopen(); en effet, elle me dit qu'elle n'arrive pas à ouvrir le flux vers un fichier se trouvant sur mon PC (le fichier PHP est sur un seveur distant). Si j'ai besoin de cette fonction c'est pour lire le contenu du fichier et l'attacher à un mail.

Donc ma question est que dois-je mettre comme type d'adresse dans le tube de fopen() ? Dois-je indiquer un protocole ?

[EDIT]Juste pour info, l'adresse est récupérée par un input de type file puis envoyée, avec la méthode post, au script d'envoi de mail.[/EDIT]

Merci pour vos réponse
Spartakis

Eléphanteau du PHP | 22 Messages

28 avr. 2005, 20:01

J'aime pas ce genre de procédé mais comme j'ai besoin de la réponse pour finir mon projet, qui ceci dit en passant doit être rendu pour samedi, je me permets de remonter ma question.

Spartakis

Mammouth du PHP | 859 Messages

28 avr. 2005, 20:07

En principe tu ne peux pas voir les fichiers d'un disque dur.

Je viens de développer une interface web pour pouvoir lister les éléments contenus dans un FTP et naviguer à ma guise dedans.

Comme le FTP est une consultation distante du contenu d'un disque dur, je suis passé par cette méthode. Mon ordi portable sert de FTP et mon ordi de maison va lister ce qui est contenu dessus.

C'est la seule méthode que j'ai trouvé pour lister mon disque dur via PHP ;)

Avec cette interface, je liste n'importe quel FTP (les anonymes ou ceux dont je connais les identifiants évidemment ;)).

Eléphanteau du PHP | 22 Messages

28 avr. 2005, 20:22

Pourtant pour attacher une pièce jointe, il faut bien "voir" le fichier... Non ?
Mais je pense que mon erreur est lors de la récupération du input de type file. Je le faisais avec un $_POST et je viens de voir sur un autre post du forum un $_FILES (que je ne connaissais pas :oops: ).
Ce que je ne comprends pas maintenant, c'est d'où vient la deuxième dimension du tableau (cf. ici).

Merci
Spartakis

Mammouth du PHP | 859 Messages

28 avr. 2005, 20:53

Pourtant pour attacher une pièce jointe, il faut bien "voir" le fichier... Non ?
Tu vois le fichier sur ton PC car c'est de lui que tu envoies le fichier.

A distance tu ne verras jamais le disque de l'autre d'où la méthode que j'ai employé pour voir un disque distant.

Eléphanteau du PHP | 22 Messages

29 avr. 2005, 01:27

C'est bon j'ai compris le fonctionnement de la variable prédefinie $_FILES. Maintenant mon problème est que cette variable est vide.
Voici le formulaire :

Code : Tout sélectionner

<form method="post" action="envoi.php" enctype="multipart/form-data"> <P align="center"><input type="hidden" name="send" value="1" /></P> <p align="center"><div class="droite">Destinataire(s) : </div><div class="gauche"><input type="text" name="dest1" /></div></p> <p align="center"><div class="droite">Destinataire(s) cach&eacute;(s) : </div><div class="gauche"><input type="text" name="dest2" /></div></p> <p align="left"><div class="droite">Pi&egrave;cce jointe : </div><div class="gauche"><input type="file" name="piece" /></div></p> <p align="left"><div class="droite">Objet : </div><div class="gauche"><input type="text" name="obj" /></div></p> <textarea name="message" cols="70" rows="30"></textarea> <p><input type="submit" value="Envoyer" /> <input type="reset" value="Recommencer" /></p> </form>
Et ici pour vérifier ce qu'il y a dans le $_FILES (dans le envoi.php) :
print_r($_FILES);
Et j'obtiens donc un Array() qui est désespérément vide.
Si quelqu'un aurait l'amabilité de m'expliquer le pourquoi du comment.

Merci
Spartakis

Mammouth du PHP | 859 Messages

29 avr. 2005, 10:12

Il y a un tutorial dans la FAQ sur l'upload par http ;)

Eléphanteau du PHP | 22 Messages

29 avr. 2005, 11:23

Je viens juste de le voir.
Je vais voir d'où peux venir l'erreur.

Merci
Spartakis

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

29 avr. 2005, 11:30

tout est dit dans le tutorial : c'est le seul moyen (sauf ftp) pour envoyer un fichier du client vers le serveur

Eléphanteau du PHP | 22 Messages

03 mai 2005, 21:36

Merci j'ai réussi à faire ce que je voulais.

Spartakis