Сжимайте файлы при загрузке клиентом

Я пытаюсь разработать что-то вроде 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");
}

 ?>

используйте цикл do while в операторе if. Пока размер файла не станет желаемым значением. Я не понимаю, как использовать цикл do while и делает ли он такой тип сжатия. Пожалуйста, помогите мне.


person Shawon    schedule 08.05.2016    source источник


Ответы (1)


Я использую этот код для резервного копирования базы данных с заархивированным типом и автоматической загрузкой. вы можете получить ссылку на эти коды

<?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);
?>
person Ivan Barayev    schedule 08.05.2016