2009-12-22 2 views
1

Как предотвратить прямой доступ к моему файлу загрузки с помощью CodeIgniter.Предотвращение прямого доступа загруженного файла в CI

ПРЕДПОЛАГАЛСЯ Я сохранил все мой файл в

приложение/secretdirectory/file1.jpg применения/secretdirectory/file2.text приложения/secretdirectory/file3.zip

обычно, я создаю прямую ссылку на доступ к этим файлам.

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

Я хочу, чтобы предотвратить это, я хочу, чтобы моя ссылка будет

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

вы можете мне помочь ???

+0

Они непосредственно обращаются к нему, когда нажимают ссылку для скачивания, не так ли? – mk12

+0

О, извините. Я новичок, я думаю, что этот веб-сайт является только средством массовой информации для запроса и ответа. В следующий раз, я приму весь ответ на свой вопрос. –

ответ

4

Это, вероятно, хорошая идея, чтобы передать его в контроллер, как это:

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); 
    } 
} 

Ваша ссылка будет:

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

Таким образом, они никогда не знать, какие Справочник, из которого он пришел.

+0

да, ты мужчина. Благодарю brur: D –

0

Я уверен, что есть библиотека в CI, чтобы помочь с этим

в основном отправлять заголовки для правильного типа MIME, длина содержимого (filesize()), а затем выводится в браузер для загрузки эхо file_get_contents() может работать)

Если вы используете Apache, вы также захотите отклонить отображение содержимого directoy.

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

Можете ли вы дать мне определенный фрагмент? спасибо –

Смежные вопросы