您的位置:首页 > 编程语言 > PHP开发

使用php实现下载打包文件

2016-12-11 22:00 986 查看
功能:在页面上对打包压缩的文件进行下载
function back_pacp_file()
{
$channel = file_get_contents('/etc/asterisk/channel.conf');
$date = date('y-m-d',time());
$pcap_file_name = "$date_$channel.tar.gz";
$pcap_file_path = "/tmp/$pcap_file_name";

$pack_cmd = "tar vcz -f $pcap_file_path /tmp/".$date."_".$channel.".pcap";

exec("$pack_cmd > /dev/null 2>&1 || echo $?",$output);
if($output) {
echo "</br>$pcap_file_name ";
echo language("Packing was failed");echo "</br>";
echo language("Error code");echo ": ".$output[0];
return;
}
if(!file_exists($pcap_file_path)) {
echo "</br>$pcap_file_name";
echo language("Can not find");
return;
}
//打开文件
$fd = fopen ($pcap_file_path, "r" );
$size = filesize($pcap_file_path) ;
//输入文件标签
header('Content-Encoding: none');
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Description: File Transfer');
header('Accept-Ranges: bytes');
header( "Accept-Length: $size");
header( 'Content-Transfer-Encoding: binary' );
header( "Content-Disposition: attachment; filename=$pcap_file_name" );
header('Pragma: no-cache');
header('Expires: 0');

//输出文件内容
ob_clean(); //清楚输出缓存内容
flush();    //刷新系统输出缓存
echo fread($fd, $size);  //读取文件内容并直接输出到浏览器
fclose ($fd);
unlink($pcap_file_path);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php