通过客户端下载时压缩文件


Compress the files while downloading by client

我尝试开发类似dropbox的东西(非常基本的一个)。下载一个文件真的很容易。我想要的是:当客户端问我大文件时,我在服务器端压缩文件,然后发送给用户。但若文件太大,那个么压缩它们并发送给用户需要花费太多时间。

有什么方法可以在压缩文件时发送文件吗?

谢谢你的帮助。这是我的简单示例代码

<?php
function createzip($files, $zip_file) {
$zip = new ZipArchive;
if($zip->open($zip_file, ZipArchive::CREATE) === TRUE) {
foreach($files as $file){
$zip->addFile($file);
}
$zip->close();
return true;
 }
else return false;
 }
$ss=array("jj.mp4");
createzip($ss,'archiv.zip');
if(filesize("archiv.zip")>3000){
$vv=array("archiv.zip");
createzip($vv,"bbb.zip");
}
 ?>

在if语句中使用do while循环。直到文件大小成为所需值。我不知道如何使用do while循环,它是否使它成为那种类型的压缩。请帮帮我。

我使用这段代码进行压缩类型的数据库备份,并自动下载。你可以参考这个代码

<?php
$DBUSER="username";
$DBPASSWD="password";
$DATABASE="dbname";
$filename = "backup-" . date("d-m-Y") . ".sql.gz";
$mime = "application/x-gzip";
header( "Content-Type: " . $mime );
header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
$cmd = "mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best";
passthru( $cmd );
echo ('Backup Ok !');
exit(0);
?>