文件下载不了,只能连接到PHP页面
来源:2-11 文件下载函数封装
慕标3964534
2018-05-23 23:26:40
<?php
function down_file(string $filename,array $allowDownExt=array('jpeg','jpg','png','gif','txt','html','php','rar','zip','rar')){
if(!is_file($filename)||!is_readable($filename)){
return false;
}
//检测文件类型是否允许下载
$ext=strtolower(pathinfo($filename,PATHINFO_EXTENSION));
if(!in_array($ext,$allowDownExt)){
return false;
}
//通过header()发送头信息
//告诉浏览器输出的是字节流
header('Content-Type:application/octet-stream');
//告诉浏览器返回的文件大小是按照字节进行计算的
header('Accept-Ranges: bytes');
$filesize=filesize($filename);
//告诉浏览器返回的文件大小
header('Accept-Length: '.$filesize);
//告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称
header('Content-Disposition: attachment;filename=king_'.basename($filename));
$read_buffer=1024;
$sum_buffer=0;
$handle =fopen($filename,"rb");
while(!feof($handle) && $sum_buffer<filesize($filename)){
echo fread($filename,$read_buffer)
$sum_buffer+=$read_buffer;
}
fclose($filename);
exit;
}
<?php
require_once 'file.func.php';
$filename =$_GET['filename'];
down_file($filename);
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>测试下载</title>
</head>
<body>
<a href="E:\PHPTutorial\WWW\zy.rar">下载1.zip</a>
<br>
<a href="downfile.php?filename=E:\PHPTutorial\WWW\zy.rar">下载zy.rar</a>
<a href="downfile.php?filename=123.txt">下载123.txt</a>
<a href="downfile.php?filename=99.txt">下载99.txt</a>
</body>
</html>
1回答
imooc_澈
2018-05-24
你好,小慕尝试了你的代码没有问题,如果文件路径正确的话是可以正常下载到的,建议检查你的文件路径是否正确。
如果解决了你的问题,请采纳,祝学习愉快~
相似问题