最近业务需要实现,判断用户是否下载完成,代码如下: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$filePath = "./download_img/temp.zip";
$fileDir = "./download_img/temp/";
$fileName = "temp.zip";
$fp=fopen($filePath,"r");
$file_size=filesize($filePath);
#下载文件需要用到的头
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$fileName);
$buffer=1024; #设置一次读取的字节数,每读取一次,就输出数据(即返回给浏览器)
$file_count=0; #读取的总字节数
#向浏览器返回数据
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
#下载完成后删除压缩包,临时文件夹
if($file_count >= $file_size)
{
unlink($filePath);
exec("rm -rf ".$fileDir);
}