(apache)如何使文件夹内容只能下载? (仅将所有文件视为可下载对象)

时间:2012-08-30 03:51:50

标签: php .htaccess

我正在尝试实现一个用户系统(PHP),其中每个用户都有一个唯一的文件夹, 用户可以将任何文件上传到该文件夹​​并稍后下载。

目前的限制是:文件名中的'htaccess'字符串被替换为'hhtaccesss'。 没有创建子文件夹。

我的问题:有没有办法(.htaccess或其他)将这些文件用于下载目的?为了确保这些未知文件都不会在系统上运行?

子问题是否存在压缩/解压缩这些文件的危险?

示例:如果用户键入.php文件的直接URL,系统将不会处理该文件(这可能是有害的),而只是“传递”给用户? 所有类型的脚本/文件都相同..

2 个答案:

答案 0 :(得分:1)

其中一个解决方案是不直接公开文件。例如。将它们存储在非公共目录中,并通过另一个页面提供它们,例如download.php,它可以读取文件内容,然后输出并使用" Content-Disposition:attachment;"报头中。

答案 1 :(得分:1)

在相应目录中的.htaccess中添加

  ForceType application/octet-stream
  Header set Content-Disposition attachment

应强制浏览器下载任何文件,无论类型如何。如果你想保留一些,可以使用<FilesMatch ..