下载不下来

来源:2-11 文件下载函数封装

花式宋人头__普拉斯

2017-11-01 23:28:22

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
</head>
<body>
<!-- <a href="http://localhost/xtt.zip">下载xtt.zip</a>
<br> -->
<a href="download.php?filename=xtt.zip">下载xtt.zip另一种方法</a>
</body>
</html>
download.php
<?php
require_once('downloadfun.php');
$filename=$_GET['filename'];
echo $filename;
down_file($filename);
downloadfun.php
<?php
header('content-type:utf-8;charset=utf-8');


function down_file($filename,$allowDown=array('html','zip','rar')){
	/*检测文件是否可读或存在*/
	if(!is_file($filename)||!is_writable($filename)){
		return '文件不存在或不可读';
	}
	$ext=strtolower(pathinfo($filename,PATHINFO_EXTENSION));
	/*检测文件是否有下载的资格*/
	if(!in_array($filename,$allowDown)){
		return "该文件的格式不支持下载";
	}
	/*通过header()发送头消息*/
	/*告诉浏览器输出的是字节流,浏览器对字节流默认的方式是下载*/
	header('content-type:application/octet-stream');
	/*告诉浏览器返回文件大下按照字节计算和文件大小*/
	header('Accept-Ranges:bytes;Accept-Length:'.filesize($filename));
	/*告诉浏览器以附件的方式下载*/
	header('Content-Disposition:attachment;filename="xie.zip"');
	readfile($filename);
	exit;
}


写回答

2回答

guly

2017-11-02

你好,判断是否为支持的压缩类型处代码应改为:

注:判断$ext;

if (in_array($ext,$allowDown)) {
    /*通过header()发送头消息*/
    /*告诉浏览器输出的是字节流,浏览器对字节流默认的方式是下载*/
    header('content-type:application/octet-stream');
    /*告诉浏览器返回文件大下按照字节计算和文件大小*/
    header('Accept-Ranges:bytes;Accept-Length:' . filesize($filename));
    /*告诉浏览器以附件的方式下载*/
    header('Content-Disposition:attachment;filename="xie.zip"');
    readfile($filename);
}else{
    return "该文件的格式不支持下载";
}
exit;

如果解决您的问题请采纳,祝学习愉快!

0

花式宋人头__普拉斯

提问者

2017-11-02

http://img.mukewang.com/climg/59fa7ba8000157f509880472.jpg

我修改了下header的配置就好了

0

0 学习 · 2569 问题

查看课程