У меня есть страница (пример: http://mypage.com/getfiles.php), где пользователь может ввести код ключа, а затем страница создает ссылки (html http://mypage.com/download/myfile.zip) на файлы zu download и пользователь может щелкнуть по ссылкам, чтобы получить файлы.
Проблема в том, что файлы хранятся в папке (загрузке), которая защищена, поэтому никто не может напрямую обращаться к файлам по адресу http://mypage.com/download/myfile.zip.
Я пробовал некоторые differnt думает, что я читаю в Интернете, чтобы изменить файл.htaccess для доступа к доступу с определенной страницы... но это не сработало!
Итак, у меня есть 2 вопроса: 1. Это самый простой способ? Или лучше использовать другой способ предоставить пользователю доступ к файлам (размер файлов от 50 МБ до 500 МБ). 2. Если идея настроить файл.htaccess - лучший способ, что с ним не так?
# set an environtment variable "noauth" if the request starts with certain string
SetEnvIf Request_URI "^http://mypage.com/getfiles.php" noauth=1
AuthType Basic
AuthName "Access to /download"
AuthUserFile ****
Require user ****
# Here is where we allow/deny
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth
Или мне нужно направлять пользователя к скрипту php, который перенаправляет его в файл, потому что со ссылкой он не работает?
Большое спасибо !
Вы можете создать скрипт, скажем, download.php под http://mypage.com/, который eventaully скопировать содержимое из файла "download/myfile.zip" и автоматически загрузить его пользователю.
Пример кода:
// Add some keycode security, then download file for user.
$file_url = 'download/myfile.zip';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url); // do the double-download-dance (dirty but worky)
/download
. Внесите эти изменения в getfiles.php
. Вместо прямой ссылки на zip
файл вы можете создать такую ссылку:
keycode
и сохраните его в сеансе.keycode
действителен, введите ссылку для загрузки: http://mypage.com/files.php?path=/download/myfile.zip
files.php
проверьте, имеет ли сеанс действительный keycode
. Если да, то доступ к файлу с использованием операций с файлами PHP с правильным заголовком Content-Type
.