Upload de fichier puis téléchargement

Eléphant du PHP | 312 Messages

10 avr. 2006, 16:40

Bonjour,

Je bloque actuellement sur un petit problème fort simple (et ça minerve !).
Je suis en train de développer une application dans laquelle l'utilisateur peut uploader des fichiers qui sont sauvegardés sur le serveur (dans une base je sauvegarde le nom du fichier, son chemin et sa taille).

Ensuite, j'affiche l'intégralité des fichiers dans un tableau et je souhaite mettre un lien pour ouvrir le fichier.
Et c'est ce lien qui est un peu foireux et me pose quelques soucis.

Le chemin vers le fichier n'est pas un chemin relatif mais absolu et plus précisément absolu sur mon disque (et non pas par rapport à la racine de mon site). Je ne peux pas mettre d'alias sur ce chemin dans ma configuration Apache étant donné que le répertoire d'upload peut changer.

Lorsque je met un lien basique du type <a href="C:/.../monfichier.truc">MonLien</a>, ça lui plait pas du tout (il aime pas le "C" devant.
J'ai aussi essayé <a href="file:///C:/.../monfichier.truc">MonLien</a>, mais ça lui plait pas non plus à cause des espaces dans le chemin (j'ai veinement essayé de remplacer les espaces par %20 mais ça ne semble pas marcher.

J'ai aussi essayé de faire un lien vers une seconde page qui, elle, définit en header que le fichier est de type binaire, etc, etc, sauf que lorsque je lui demande de m'ouvrir une image avec firefox, il m'affiche tout le code de l'image.

Bref, j'aimerais que mon lien s'adapte au format : si c'est une image ou un document texte, il l'affiche, si c'est un fichier nécessitant une application externe (.doc, .xls, etc) il me mette simplement la fenêtre ouvrir/télécharger, etc.

Bref, si quelqu'un pouvait m'aider, je lui en serai fort reconnaissant...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 avr. 2006, 16:44

ca ne risque pas de marcher avec C:\ !!! comment veut tu que Apache accède à ce dossier ? ;)

A part faire des chemins à partir de la racine du site, je vois pas :-k
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 312 Messages

10 avr. 2006, 16:49

Pourtant lorsque je sauve le fichier, je lui donne un chemin qui part de C: et pas de la racine apache.
Et ça pose aucun problème à Apache/PHP pour écrire ce fichier dans le bon répertoire.

L'inverse (la lecture) ne serait donc pas possible ? étonnant...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 avr. 2006, 17:22

Non, parce que Apache ecrit dans l'architecture du serveur sans aucun problème, mais il ne peut envoyer sur le web que ce qui se trouve dans le serveur.

Apache peut y acceder mais il ne peut l'envoyer sur le net directement

De plus, si tu met <a href="C:/...">, il va chercher sur le poste local, pas sur le serveur ... :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 312 Messages

11 avr. 2006, 09:14

Damned !

Bon, je tacherai de trouver une autre solution alors, merci pour ton aide Zeus =)