DENY прямая загрузка файла с использованием php

У меня есть .doc и .zip файлы в каталоге загрузки на моем сервере. кто бы ни посетил мою страницу сайта ( download-file.php) только те пользователи должны иметь возможность загружать эти файлы, а другие не должны.

Я пытаюсь достичь выше, но не повезло …

Я все еще могу указать адрес прямого файла ( http://example.com/sample.doc ) в браузере, и я могу загрузить, что я не хочу … кто-то другой, дающий ссылку на вышеупомянутый файл на любом веб-сайте, тогда также загрузка не должна произойти.

Может ли кто-нибудь поделится какой-то идеей … как бы я этого добился.

Заранее спасибо.

В файле htaccess в корне вашего документа вы можете включить эти правила:

 RewriteEngine On # you can add whatever extensions you want routed to your php script RewriteCond %{REQUEST_URI} \.(doc|zip|pdf)$ [NC] RewriteRule ^(.*)$ /download-file.php?filename=$1 [L] 

Затем в download-file.php вы можете отображать все, что вам нужно для отображения, и ссылку для загрузки, которую ваш скрипт php может сразу же обслуживать файл с помощью файла read php () (см. Ссылку для примеров)

Вы должны запретить доступ к каталогу файлов и предлагать только загруженные версии PHP (пример с PDF-файлами):

data / .htaccess (googled):

 deny from all 

download.php:

 /* User access check here, prior to the following code */ $name = 'MyPDF.pdf'; $filename = 'data/pdf_12345.pdf'; header('Content-Disposition: attachment; filename="'.$name.'"'); header("Content-Type: application/pdf"); header("Content-Length: " . filesize($file)); fpassthru($filename) 

Конечно, вы можете установить разные имена файлов для каждого пользователя и каждого запроса, например download.php?file=MyPDF

Вы должны иметь возможность ограничить доступ людей к вашему контенту, используя метод, аналогичный следующему коду:

RewriteCond% {HTTP_REFERER}! ^ Http: //your_domain.com/.*$ [NC]

RewriteCond% {HTTP_REFERER}! ^ Http: //your_domain.com$ [NC]

RewriteCond% {HTTP_REFERER}! ^ Http: //www.your_domain.com/.*$ [NC]

RewriteCond% {HTTP_REFERER}! ^ Http: //www.your_domain.com$ [NC]

RewriteRule. *. (Jpg | jpeg | gif | png | bmp | pdf | doc) $ http://your_domain.com/no_access.php [R, NC]

Это позволит людям напрямую связывать изображения, PDF-файлы или документы с вашего сайта. Затем файлы с этими расширениями будут доступны только с вашего сайта. Если кто-то пытается напрямую связать или получить доступ к вашим файлам, они будут испытывать все, что вы выберете для них, чтобы увидеть (что вы помещаете в no_access.php).

Если у вас есть выделенный сервер, самый простой и, на мой взгляд, самый безопасный способ – хранить файлы вне / var / www /

Например, вы можете создать папку / var / webdocs / и сохранить их там.