2013-09-04 1 views
2

Я хочу создать веб-страницу, в которой есть опция загрузки для pdf, но я хочу, чтобы она защищалась паролем, т. Е. Если кто-то нажимает на эту ссылку, он должен ввести имя пользователя и пароль, ссылка «www.example.com/~folder_name/abc.pdf», а затем сервер запросит пароль, а затем позволяют загрузитьСоздание защищенного файла с защитой паролем на веб-странице

Edit: Я хочу, чтобы пользователь мог просматривать файл в браузере, а не заставить его скачать вот мой код

<?php 
    /* authentication script goes here*/ 
    $file = 'http://example.com/folder_name/abc.pdf'; 

    //header('Content-Description: File Transfer'); 
    header('Content-Type: application/pdf'); 
    header('Content-Disposition: inline; filename=' . basename($file)); 
    header('Content-Transfer-Encoding: binary'); 
    //header('Expires: 0'); 
    //header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    //header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    header('Accept-Ranges: bytes'); 
    @readfile($file); 

?> 

, но этот код не шторы g pdf в моем браузере. Я не хочу код зависеть от Pdf плагин, используемый браузер

+0

Просто разъяснение ... это защита пароля только для загрузки? Итак, вы все еще хотите, чтобы люди имели доступ к файлу PDF, но не загружали его, пока не ввели имя пользователя/пароль? – aug

+1

нет, разрешение на просмотр также проходит проверку подлинности, у меня есть собственный скрипт аутентификации –

ответ

1

Вы можете сделать .htaccess файл в веб-папке, загружаемый настроить на так, что, прежде чем кто может войти в домен, они должны войти в правильный пользователя и пароль, чтобы войти в

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

AuthType Basic 
AuthName "restricted area" 
AuthUserFile /path/to/file/directory-you-want-to-protect/.htpasswd 
require valid-user 

Кроме того, необходимо создать .htpasswd файл где вы можете указать имя пользователя и пароль. Пароль должен быть зашифрован с помощью хеша MD5, но вы можете использовать генератор, к которому он привязывается, в своем блоге. Надеюсь это поможет.

+0

Фактически имя пользователя и пароль разные для разных лиц. Я сделал php-скрипт для проверки имени пользователя и пароля. так что любое другое предложение для проверки .htpasswd? –

+0

У вас может быть столько комбинаций пользователей и паролей, которые вы хотите в '.htpasswd', и они могут быть одинаковыми или разными. Вам просто нужно сделать запись для каждого другого человека и поместить зашифрованный уникальный пароль MD5 для каждого из них. Это проблема, о которой вы говорили? Возможно, я не понимаю ваш вопрос. – aug

+0

Я использую скрипт для проверки имени пользователя и пароля, так как я могу сделать это через htpasswd? –

0

Вы по-прежнему можете использовать .htaccess, чтобы не допустить, чтобы кто-либо прямо загружал ваш документ и защищал ссылку на документ.

.htaccess может быть, как это

RewriteRule ^([A-Za-z0-9-]+).pdf$ index.php [L,QSA] 

И вы можете использовать PHP для этого.

Somethink как это

<?php 

    //here you authenticate user with your script 

    //and then let the user download it 
    if (!isset($_SESSION['authenticated'])) 
    { 
     header('Location: http://www.example.com/'); 
     exit; 
    } 
    $file = 'www.example.com/~folder_name/abc.pdf'; 

    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename=' . basename($file)); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    ob_clean(); 
    flush(); 
    readfile($file); 
    exit; 
?> 
+1

Я хочу, чтобы пользователь просматривал этот файл на новой вкладке браузера, но фактически не заметил путь к файлу. Является ли это возможным ? –

+0

Вы хотите, чтобы он просмотрел весь файл pdf, но не разрешил ему его загрузить? – JTC

+1

он может скачать файл, но его не следует принудительно загружать. он должен зависеть от выбора пользователя, но я хочу, чтобы этот пользователь не мог заметить фактический путь к файлу. –