2016-05-08 3 views
0

私はdropbox(非常に基本的なもの)のようなものを開発しようとしています。 1つのファイルをダウンロードするには、それは本当に簡単です。私が欲しいのは:クライアントが私に大きなファイルを要求するとき、私はサーバー側のファイルをzipしてユーザーに送ります。しかし、ファイルが大きすぎる場合、ファイルを圧縮してユーザーに送信するまでに何度も時間がかかります。クライアントでダウンロード中にファイルを圧縮する

圧縮中にファイルを送信する方法はありますか?

ご協力いただきありがとうございます。ここで私の簡単なサンプルコードは

<?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"); 
} 

?> 

を使ってdo whileループインif文です。ファイルサイズが望ましい値になるまで。私はdo whileループを使う方法を理解しておらず、それをそのタイプの圧縮にしています。私を助けてください。

答えて

0

私はこのコードをZIP形式のデータベースバックアップに使用しており、自動的にダウンロードしています。 あなたはこのコードを参照することができます

<?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); 
?> 
関連する問題