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

Я пытаюсь разработать что-то вроде 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 и делает ли он такой тип компрессии. Пожалуйста, помогите мне.

0

Решение

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

$FList = $dl->select('dosyaYolu0, dosyaYolu1, dosyaYolu2, dosyaYolu3, dosyaYolu4')->table('tb_gelenEvrak')->where('mesajKodu', $filesnorm)->get();$files = array(''.$FList->dosyaYolu0.'', ''.$FList->dosyaYolu1.'', ''.$FList->dosyaYolu2.'',''.$FList->dosyaYolu3.'', ''.$FList->dosyaYolu4.'');
$zipname = $filesnorm.'.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]