js+php隐藏实际路径带加密验证下载pdf,xlsx等文件完整代码

<?php
$imgdir = "./1fdgasaa/"; //存储文件夹请自定义
$md5key = "admin@12391.net"; //加密秘钥请自定义
function webdown($file,$mima="88888888"){
global $imgdir, $md5key;  $dadirs = $imgdir.$file;
if(!file_exists($dadirs)){ header("HTTP/1.1 404 Not Found");exit;}
$mamar = md5("$md5key@$dadirs@$md5key");
if($mamar!=$mima){header('HTTP/1.1 403 Forbidden'); exit;}
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $file . '"');
header('Content-Length: ' . filesize($dadirs));
readfile($dadirs);
exit();
}

if($_GET['act']=="down"){
$file = (isset($_POST['file']))?addslashes($_POST['file']):"99";
$mima = (isset($_POST['mima']))?addslashes($_POST['mima']):"88";
webdown($file,$mima);
}

$file = "10.pdf";//文件名
$dadirs = $imgdir.$file;
$mamar = md5("$md5key@$dadirs@$md5key");//生成密码

?><input id="file" value="<?php echo $file; ?>">
<input id="mima" value="<?php echo $mamar; ?>">
<span id="rest"></span>
<script type="text/javascript">
function $(objId){
 return document.getElementById(objId);
}
function godown(){
var fd = new FormData();
fd.append('file',$("file").value);
fd.append('mima',$("mima").value);
var xhr = new XMLHttpRequest();
 xhr.responseType = 'blob';
 xhr.onload = function() {
if(xhr.readyState == 4){
if(xhr.status == 404){ $('rest').innerHTML="文件不存在(无此文件)"; }
if(xhr.status == 403){ $('rest').innerHTML="无权限下载(通信秘钥)"; }
if(xhr.status == 200){ 
 var blob = new Blob([this.response], { type: 'application/octet-stream' });
 var url = URL.createObjectURL(blob);
 var a = document.createElement('a');
  a.href = url;
  a.download = $('file').value;
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
 }
 }
};
xhr.open('POST','?act=down&v='+$('mima').value,true);
xhr.send(fd);//post文件名和密钥
}
godown();
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YUJIANYUE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值