成功下载文件,但是解压报错了
来源:2-11 文件下载函数封装
西岚Silan
2018-03-24 04:50:21
function down_file1(string $filename, array $allowDownExt = array('jpeg', 'jpg', 'png', 'gif', 'txt', 'html', 'php', 'rar', 'zip')) { //检测下载文件是否存在,并且可读 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($filename)); //告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称 header('Content-Disposition: attachment;filename=king_' . basename($filename)); //规定每次读取数据的字节数为1024个字节,直接输出数据 $read_buffer=1024; $sum_buffer=0; $handle=fopen($filename,'rb'); while(!feof($filename)&&$sum_buffer<$filesize){ echo fread($handle,$read_buffer); $sum_buffer+=$read_buffer; } fclose($handle); exit; }
header("content-type:text/html;charset=utf-8"); require_once 'myfunction.php'; $filename=$_GET['filename']; down_file1($filename);
文件能够成功下载,但是解压的时候报错,文件路径没有错,跟download.php放在同一目录
1回答
imooc的铁粉
2018-03-25
建议参考:这个解压出错的可能性有很多,最大的可能性是你下载文件时损坏了,这样损坏的文件肯定是解压不了的。
第一种可能:下载文件不全或下载时出错造成的,这样无法解压,可以重新再下载一次,最常见的。
第二种可能:别人上传的时候就出现了错误,你下载到本地自然会出错,这样的只能再找源文件了。
第三种可能:你的解压软件出现了问题,可以重新换一个解压软件再进行解压。
第四种可能:电脑系统出现问题了,把文件复制到其它电脑上,然后再解压
相似问题