php - 从网络目录下载文件

标签 php security http authentication .htaccess

我有一个允许用户将一些文件上传到文件夹的表单。

我已经编辑了该目录中的 .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/

相关文章:

http - 如何将这个 Curl HTTP 翻译成 Arduino C++?

php - 如何检查日期是否为 j-n-Y 格式?如果是的话如何将其转换为 d-m-Y 格式?

php - 按值获取记录或获取最后一条记录

php - 安装了 Memcached(理论上),PHP 无法使用 memcache_connect()

javascript - 黑客可以访问/复制/下载部署在 Node Js 上的 JS 服务器端代码吗?

java - 使用适用于 Android 的 Google 云消息传递

php - 重复 if/elseif/else 直至完成

ios - Swift 和 Stack 粉碎保护

javascript - JavaScript 到后端的 API 调用 : Ensuring legitimacy without server-side code

mysql - XWiki + MySQL 数据库 : Errors