2010-12-04 32 views
1

J'ai un tas de fichiers .tgz qui sont accessibles via. liens symboliques. Lorsque je clique sur le href sur ma page pointant vers le lien symbolique, il télécharge un fichier plutôt étrange. Le fichier téléchargé a le nom du lien symbolique, et lors de l'ouverture de l'archive, je reçois (de ce que je peux dire) un fichier binaire, qui peut être ou ne pas être au contenu du fichier statique. Ce que je voudrais faire est obtenir PHP pour montrer un dialogue de téléchargement de fichier qui donne le fichier lié par le lien symbolique, pas le lien symbolique réel. Est-ce possible?Téléchargement de fichiers PHP avec des liens symboliques

Répondre

3

Eh bien, pour vous donner une réponse exacte je besoin de savoir plus sur la façon dont vous servez le fichier. Pourquoi php est-il impliqué? le fichier n'est pas servi par le serveur web? Est-ce que vous y redirigez ou le lisez en mémoire dans votre script php d'où vous l'imprimez?

Mais je peux vous dire ceci. Dans la plupart des cas, PHP gère les liens symboliques en tant que fichiers et ne sert pas le fichier derrière le lien.

Il ya les fonctions php is_link() pour vérifier si un pointeur de ressource est un lien, il y a la fonction readlink() pour servir le fichier derrière un lien et il y a linkinfo() qui vous donne des informations sur le lien .

Mais vous avez probablement besoin d'autoriser explicitement Apache ou tout autre serveur que vous utilisez à suivre des liens symboliques qui peuvent être associés à la directive Options FollowSymLinks dans apache.

+0

Yup, Options FollowSymLinks semble suspicieusement – ajreal

+1

Merci Joe. J'ai finalement travaillé en utilisant cette ligne pour lire le fichier, après avoir passé quelques paramètres 'header()': 'readfile (readlink (" path/to/symlink "));' – Bojangles

+0

J'ai essayé d'utiliser le commutateur de configuration Apache, mais en vain. – Bojangles