我有一个允许用户将一些文件上传到文件夹的表单。
我已经编辑了该目录中的 .htaccess 文件,以防止不速之客通过键入完整 url 手动下载该文件夹的内容 前任: http://www.bkabkabka.com/a/b/c/document.pdf
这是 .htaccess 数据
Options All -Indexes
<FilesMatch "\.(htaccess|doc|pdf|docx)$">
Order Allow,Deny
Deny from all
我有另一个管理页面,它允许我们这边的负责人通过将文件过滤到他想要的任何内容来下载文件,然后单击 html 链接以正常下载文件。 例如:
id name filename
1 aaaaa --> filename1 <-- this is href link which contains for example http://www.bkabkabka.com/a/b/c/2.doc
问题是 htaccess 修改正在全局应用,我想为该文件夹创建用户名和密码,然后使用 PHP 代码连接到该文件夹并能够下载文件通常。
我该怎么做?
谢谢。
最佳答案
使用 apache 密码保护目录的最简单方法是 htpasswd:
将.htaccess 添加到 protected 目录树的根目录中:
AuthUserFile /home/user/www/protected/.htpasswd
AuthType Basic
AuthName "Protected"
Require valid-user
然后从命令行运行它并输入所需的密码:
htpasswd -c /home/user/www/protected/.htpasswd user
你可以像这样添加另一个用户:
htpasswd /home/user/www/protected/.htpasswd user2
要使用 php 下载此 protected 目录中的文件,请使用基本身份验证。那就是像这样构建一个 url:http://user:password@server/protected/file.txt
关于您的评论,在 cpanel 中有一个可从主页访问的“密码保护目录”功能。这里有一些细节:
http://www.siteground.com/tutorials/cpanel/pass_protected_directories.htm
如果您打算将上传的文件存储在 protected 目录中,您只需确保 move_uploaded_file 将文件复制到正确的路径,例如:
move_uploaded_file($tmpPath, "/home/user/www/protected/$name");
关于php - 从网络目录下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000431/