Я хочу создать веб-страницу с возможностью загрузки 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, используемого браузером
Вы можете сделать файл .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; ?>