老师我下载2.zip不了

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

weixin_慕沐1378591

2020-06-21 01:33:24

html文件

<!doctype html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport"
         content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <title>下载</title>
</head>
<body>
<a href="http://file.mukewang.com/class/assist/357/2155154/%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C %E8%AF%BE%E5%A0%82%E6%BA%90%E7%A0%81.zip">下载1.zip</a>
<br>
<a href="./download.php?filename=2.zip">下载1.zip</a>
</body>
</html>

download.php文件

<?php
require_once 'file.func.php';
$filename=$_GET['filename'];
down_file($filename);


file.func.php文件

function down_file(string $filename,array $allowDownExt=array(['jpg','jpeg','png','txt','rar','zip','html'])){
   // 检测下载文件是否存在,并且可读
   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');
   // 告诉浏览器返回的大小
   header("Accept-Length: ".filesize($filename));
   // 告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称
   header('Content-Disposition: attachment;filename=king_'.basename($filename));
   // 读取文件中的内容
   readfile($filename);
   exit;
}


都在同级目录下,2.zip下载不了不知道是什么原因


写回答

3回答

好帮手慕小尤

2020-06-23

同学你好,1. 同学需要开启phpstudy。

2. 建议同学查看引入file.func.php文件是否正确。

3. 建议同学在课程源码中进行测试,查看是否存在此现象。

祝学习愉快!

1

好帮手慕小尤

2020-06-22

同学你好,请问同学是使用phpstorm进行访问的吗?如果是,则建议同学在浏览器中直接访问,查看是否还存在问题。

祝学习愉快!

0
heixin_慕沐1378591
h 是在页面中运行的,包括后续的上传操作也不行,显示的也是No input file specified. 没开phpstudy,这个有关系吗,在网上查了下,php.ini文件里面是不是也需要改什么,但是也没用...
h020-06-23
共1条回复

weixin_慕沐1378591

提问者

2020-06-21

补充下,谷歌浏览器,phpstorm,用老师的源码套上去zip文件也不能下载,但是会显示No input file specified., 用自己的代码什么都不显示

0

0 学习 · 4928 问题

查看课程