问题描述文件下载,通常有一种最简单的方法,就是直接把url指向文件在服务器上的位置。但是这种方法存在很大的安全隐患。暴露服务器的文件目录结构。无法禁止非法请求源,无法对文件下载请求进行安全验证。解决方案1.将文件下载请求映射到后端程序url。使用http服务器(apache/nginx)实现映射功能这里以apache为例进行说明,使用apache的rewrite模块配置rewrite规则。(关于如何打开rewrite模块,网上资源很多,这里不再赘述)在项目根目录下创建一个.htaccess文件,在RewriteEngine上写入rewrite规则#Mapallurlsendinginrar/zip到download.php文件RewriteRule(.*\.(rar|zip))$download.php?file=$1[NC]映射所有以rar/zip结尾的url到download.php文件(这里直接映射为了方便写一个php脚本,如果你用的是framework,那么映射到具体controller中的方法!例如:index.php?c=home&a=download)二、编写具体的文件下载逻辑项目目录以本地项目为例如,用户需要下载zip文件并将其放在当前项目的临时目录中。示例直接上传代码。代码中有详细注释。
