2009-12-22 4 views
1

Comment empêcher un accès direct à mon dossier de téléchargement en utilisant CodeIgniter.Empêcher l'accès direct du fichier téléchargé dans CI

Censé Je stocké tout mon fichier dans

application/secretdirectory/file1.jpg application/secretdirectory/file2.text application/secretdirectory/file3.zip

habituellement, je créer un lien direct vers accéder à ces fichiers.

<a href="application/secretdirectory/file3.zip" > download here </a> 

Je veux éviter, je veux que mon lien sera

<a href="<? echo site_url() . "download/file3.zip" ?>" > download here </a> 

pouvez-vous me aider ???

+0

Ils n'accèdent directement lorsqu'ils cliquent sur le lien de téléchargement, sont-ils pas? – mk12

+0

Oh ... je suis désolé. Je suis newbe, je pense que ce site est seulement un média pour demander et répondre. La prochaine fois, je vais accepter toutes réponse à ma question. –

Répondre

4

Il est probablement une bonne idée de passer à un contrôleur comme ceci:

Class File extends Controller{ 

    function download($file){ 
     $data = file_get_contents('path/to/' . $file); // Read the file's contents 
     $name = $file; 
     force_download($name, $data); 
    } 
} 

Votre lien serait:

<?php echo anchor('file/download/' . $thefile, 'Download');?> 

De cette façon, ils avaient jamais savoir qui répertoire d'où il vient.

+0

ouais ..., vous êtes l'homme. Merci brur: D –

0

Je suis sûr qu'il ya une bibliothèque dans CI pour aider à ce

essentiellement vous envoyer des en-têtes pour le type MIME correct, la longueur du contenu (filesize()) puis sortie vers le navigateur pour télécharger l'écho file_get_contents() peut travailler)

Si vous utilisez Apache, vous aurez également besoin de refuser l'affichage du contenu directoy.

<Files .*> 
    Order Deny,Allow 
    Deny From All 
</Files> 
+0

pouvez-vous me donner un extrait spécifique? merci –

Questions connexes