我有一个页面(例如:http://mypage.com/getfiles.php),用户可以在其中输入密钥代码 然后页面生成链接(html http://mypage.com/download/myfile.zip)到文件zu下载,用户可以点击链接获取文件。
问题是文件存储在受保护的文件夹(下载)中,因此没有人可以直接访问http://mypage.com/download/myfile.zip下的文件。
我尝试了一些不同的想法,我在互联网上阅读更改.htaccess文件,以便从某个页面访问...但它没有用!
所以我有两个问题: 这是最简单的方法吗?或者更好的是使用另一种方式让用户访问文件(文件大小从50mb到500mb) 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脚本将其转发到文件中,因为链接不起作用?
非常感谢!
答案 0 :(得分:3)
您可以在http://mypage.com/下创建一个名为 download.php 的脚本,该文件将文件“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)
答案 1 :(得分:1)
/download
文件夹的人,请将此基本身份验证“按原样”。在getfiles.php
中进行这些更改。您可以生成如下链接:
zip
文件
keycode
并将其存储在会话中。keycode
有效,则生成下载链接:http://mypage.com/files.php?path=/download/myfile.zip
files.php
内查看会话是否有效keycode
。如果是,则使用具有正确Content-Type
标题的PHP文件操作访问该文件。