正在回答 回答被采纳积分+1
2回答
好帮手慕查理
2019-04-26 15:06:00
您好,download.php中require_once包含的文件名称应该是file.func.php。代码可以成功下载文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | function down_file(string $filename , array $allowDownExt =[ 'jpg' , 'jpeg' , 'png' , 'gif' , 'zip' , 'rar' , 'txt' , 'html' , 'php' ]){ //检测下载文件是否存在,并且可读 if (! is_file ( $filename ) || ! is_readable ( $filename )){ return false; } //检测文件类型是否允许下载 $ext = strtolower ( pathinfo ( $filename ,PATHINFO_EXTENSION)); if (!in_array( $ext , $allowDownExt )){ return false; } //设置脚本最大执行时间,设置0为无时间限制 set_time_limit(0); //通过header()发送头信息 //告诉浏览器输出的是字节流 header( 'content-type:application/octet-stream' ); //告诉浏览器返回的文件大小是按照字节进行计算的 header( 'Accept-Ranges:bytes' ); //告诉浏览器返回的文件大小 header( 'Accept-Length:' . filesize ( $filename )); //告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称 header( 'Content-Disposition:attachment;filename=' . basename ( $filename )); //读取文件中的内容 // readfile($filename); //规定每次读取文件的字节数为1024字节,直接输出数据 $filesize = filesize ( $filename ); $read_buffer =1024; $sum_buffer =0; $handle = fopen ( $filename , 'rb' ); while (! feof ( $handle ) && $sum_buffer < $filesize ){ echo fread ( $handle , $read_buffer ); $sum_buffer += $read_buffer ; } fclose( $handle ); exit ; } |
同学可以查看下自己的代码是否与上述代码相同,因为无法判断同学哪些代码是注释的,上述代码是根据同学反馈的内容调整格式之后运行的。祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
PHP小白零基础入门
- 参与学习 人
- 提交作业 626 份
- 解答问题 4928 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧