PHP用代码实现文件下载

qq651000322 2014-10-18 04:09:22

我们一般实现下载都是调用url来下载,但是遇到ie能识别打开的文件就不能用这种方式了,比如下载一个图片、html网页等,这时就需要编程来实现,以下php代码可以解决:

<?
if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){
echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit();
}
$file_name=$_GET['FileName'];
$file_dir=$_GET['FileDir'];
$FileId=$_GET['FileId'];
$file_dir = $file_dir."/";
if (!file_exists($file_dir.$file_name)) { //检查文件是否存在
echo "文件找不到";
echo"exelianfa.net 【EXE连发】 | DNF连发EXE-官方下载";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit();
}
?>
...全文
192 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxhhl_2238677164 2014-10-19
  • 打赏
  • 举报
回复
php用代码实现文件下载示例 //下载码文本框添加下载码 <input id="chkdown" type="text" />  <button id="downbtn" onclick="chkdown()"></button> //点击下载按钮的js事件 function chkdown(){ if($('chkdown').value == ''){ alert('请输入下载码!'); return false; } location = '?act=downcode&chkdown='+$('chkdown').value; } //加载下载页面downcode.ph <?php $act = $_GET['act']; switch($act){ case 'up': include 'upfile.php'; break; case 'upfile': include 'upfile_chk.php'; break; case 'down': include 'downfile.php'; break; case 'downcode': include 'downcode.php'; break; case 'queryfile': include 'queryfile.php'; break; default: include 'pub.php'; break; } ?> //到downcode.php执行查询数据 <?php $chkdown = trim($_GET['chkdown']); $downsql = "select * from tb_upfile where chkdownnum = '".$chkdown."'"; $downarr = $conne->getRowsArray($downsql); ?> //输出查询表单显示下载码分页及显示下载码文件信息等,同时点击文件名即可完成下载 <div id="filelist"> <?php $infoline = 0; if(!empty($downarr)){ ?> <ul> <li style=" width: 30px; background-color: #F8E7A5;"> </li> <li style=" width: 200px; background-color:#F8E7A5; ">文件名</li> <li style=" width: 50px; background-color:#F8E7A5; ">文件类型</li> <li style=" width: 100px; background-color:#F8E7A5;">下载码</li> <li style=" width: 150px; background-color:#F8E7A5;">上传时间</li> </ul> <?php foreach($downarr as $key => $value){ ?> <ul> <li style=" width: 30px;background-color: <?php echo ($infoline %2 ==0?'#FFFFFF':'#f0f0f0'); ?>;"><input id="chk[<?php echo $key; ?>]" type="checkbox" value="<?php echo $value['id']; ?>" style=" width:30px; height:20px; border: 0px;" /></li> <li style=" width: 200px; background-color:<?php echo ($infoline %2 ==0?'#FFFFFF':'#f0f0f0'); ?>;"> <a href="download.php?path=<?php echo $value['filepath']; ?>"><?php echo $value['filename']; ?></a></li> <li style=" width: 50px; background-color: <?php echo ($infoline %2 ==0?'#FFFFFF':'#f0f0f0'); ?>;"> <?php echo $value['filetype']; ?></li> <li style=" width: 100px; background-color: <?php echo ($infoline %2 ==0?'#FFFFFF':'#f0f0f0'); ?>;"> <?php echo $value['chkdownnum']; ?></li> <li style=" width: 150px; background-color: <?php echo ($infoline %2 ==0?'#FFFFFF':'#f0f0f0'); ?>;"> <?php echo $value['uptime']; ?></li> </ul> <?php $infoline = ($infoline+1)%2; } }else{ echo '没有可下载资源'; }//codego.net/tags/4/1/ ?> //下载文件 <?php $path = $_GET['path']; if(!empty($path) and !is_null($path)){ $filename=basename($path); $file=fopen($path,"r"); header("Content-type:application/octet-stream"); header("Accept-ranges:bytes"); header("Accept-length:".filesize($path)); header("Content-Disposition:attachment;filename=".$filename); echo fread($file,filesize($path)); fclose($file); exit; } ?>
傲雪星枫 2014-10-18
  • 打赏
  • 举报
回复
主要想输出echo"exelianfa.net 【EXE连发】 | DNF连发EXE-官方下载";
Naccery 2014-10-18
  • 打赏
  • 举报
回复
这是想说明什么啊??
天涯过客009 2014-10-18
  • 打赏
  • 举报
回复
已阅,请结账.
风.foxwho 2014-10-18
  • 打赏
  • 举报
回复
你是发案例 的吧! 你那程序是不能直接用的,有漏洞,可以把服务器相关的东东下载下来(如果服务器权限没设置好,那乐子就更大了,直接 获取到服务器权限)

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧