2015-10-04 1 views
1

J'ai un fichier sur le serveur nommé 'fichier.pdf' et je ne peux pas y accéder directement comme ceci: servername.com/file.pdf, parce que c'est dans le niveau supérieur du dossier vers lequel servername.com redirige.Le contenu du fichier de sortie est-il le même que l'accès direct?

-je utiliser php pour obtenir le fichier puis la sortie, il ressemblerait à ceci: servername.com/get_file.php?filename=file.pdf

C'est ce que j'ai essayé, cependant, il ne fonctionne pas:

<?php 
    $filename = $_GET['filename']; 
    header('Location: ../seedbox/downloads/knygos' . $filename); 
?> 

Une solution sur comment je peux accéder à ce fichier?

Répondre

2

Dans votre "solution", vous répétez exactement la même erreur. Vous essayez à nouveau d'accéder directement à un fichier via HTTP qui se trouve en dessous de votre racine Web (dossier public, httpdocs, ...).

Vous proposez déjà la bonne solution, à savoir récupérer le fichier avec PHP et le servir, mais vous ne le faites pas. Vous avez deux solutions principales pour le problème:

Déplacer le fichier dans un lieu public

Ici vous pouvez changer définitivement l'emplacement du fichier à quelque chose comme mysite.com/downloads/file.pdf ou copy là dynamiquement avec PHP:

copy('../files/file.pdf', 'downloads/file.pdf'); 

Serve le fichier à la volée

header("Content-type: application/pdf"); 
header("Content-Disposition: attachment; filename=file.pdf"); 

readfile('../files/file.pdf'); 
+0

Vous le vrai MVP –