网站首页 文章专栏 nginx 下载防盗链并自定义下载文件名称
下载防盗链分为两部分组成
1. php 方面
$filename='need.rar'; $new_name='新的名字'; $fileExt = pathinfo($file_name, PATHINFO_EXTENSION);//获取原文件后缀 $new_name.=$new_name; $secret = 'key'; // key,自定义秘钥 $ipip=$_SERVER["REMOTE_ADDR"]; //iP $expires = time()+300; //这里是300妙内访问有效 $md5 = base64_encode(md5($secret . $ipip .$filename. $expires, true)); // MD5生成 $md5 = strtr($md5, '+/', '-_'); // + and / 替换掉 $md5 = str_replace('=', '', $md5); // 替换= $url = "http://domain.com/$filename?md5=$md5&e=$expires&_nm=$new_name"; //安全下载链接demo设置
2.nginx方面
location ~* \.(rar|zip|7z)?$ { root /data/dowmload/rar/; set $filename $arg__nm; //定义一个变量filename 值为url中的参数_nm if ($filename != "") { add_header Content-Disposition "attachment;filename=$filename;"; //有新的名称就输出新的名称 } if ($filename = "") { add_header Content-Disposition "attachment;"; //无新名称输出旧名称 } secure_link $arg_st,$arg_e; secure_link_md5 yourkey$remote_addr$uri$arg_e; //将key 参数r 地址 过期时间 一起md5加密 处理方式用传过来的md5参数 #limit_rate 200m; if ($secure_link = "") { return 403; } if ($secure_link = "0") { return 403; } if (!-e $request_filename) { root /data/dowmload/rar/; } }
转载请注明出处