Создание защищенного паролем загружаемого файла на веб-странице

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

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

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

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

Solutions Collecting From Web of "Создание защищенного паролем загружаемого файла на веб-странице"

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

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

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

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

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

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

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

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

Что-то вроде этого

 <?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; ?>