Hallo,
mit folgendem PHP Script wird ein Zip Archiv mit Bildern erstellt. Je nach Auswahl des Foto Albums kann das mit >100 Bildern einige Zeit dauern. Das funktioniert nun auch soweit.
Ideal wäre jetzt eine Art Fortschrittsbalken um zu sehen, wie weit die Erstellung des Zip Archivs ist.
Folgender Code erstellt das Zip Archiv:
Nun kenne ich mich leider mit AJAX nicht gut aus, aber wäre das damit realisierbar?
Ich hätte gerne eine index.phpmit der per click das Erstellen des Archivs (zip.php) starten kann und den Fortschritt sieht. Es müsste eigentlich nach jedem erfolgreich hinzugefügten Bild in das Archiv ein Counter nach oben gehen und der Wert dann an die index.php zurückgegeben werden, damit dann der Fortschrittsbalken angepasst werden kann. Dann könnte der Balken bspw. bei 100 Bildern nach Bild 1 die Breite (1/100) pixel, nach Bild 2 (2/100) pixel, etc. haben?
Bin sehr dankbar für eure Hilfe!
mit folgendem PHP Script wird ein Zip Archiv mit Bildern erstellt. Je nach Auswahl des Foto Albums kann das mit >100 Bildern einige Zeit dauern. Das funktioniert nun auch soweit.
Ideal wäre jetzt eine Art Fortschrittsbalken um zu sehen, wie weit die Erstellung des Zip Archivs ist.
Folgender Code erstellt das Zip Archiv:
Code:
function create_zip($files = array(),$destination = '',$overwrite = true) {
//if the zip file already exists and overwrite is false, return false
if(file_exists($destination) && !$overwrite) { return false; }
//vars
$valid_files = array();
//if files were passed in...
if(is_array($files)) {
//cycle through each file
foreach($files as $file) {
//make sure the file exists
if(file_exists($file)) {
$valid_files[] = $file;
}
}
}
//if we have good files...
if(count($valid_files)) {
//create the archive
$zip = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
return false;
}
//add the files
foreach($valid_files as $file) {
$explode = explode ("/", $file);
$zahl = count($explode);
$filename = $explode[$zahl-1];
$zip->addFile($file,$filename);
}
//debug
//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
//close the zip -- done!
$zip->close();
//check to make sure the file exists
return file_exists($destination);
}
else
{
return false;
}
$result = create_zip($files_to_zip,$album_zip);
Nun kenne ich mich leider mit AJAX nicht gut aus, aber wäre das damit realisierbar?
Ich hätte gerne eine index.phpmit der per click das Erstellen des Archivs (zip.php) starten kann und den Fortschritt sieht. Es müsste eigentlich nach jedem erfolgreich hinzugefügten Bild in das Archiv ein Counter nach oben gehen und der Wert dann an die index.php zurückgegeben werden, damit dann der Fortschrittsbalken angepasst werden kann. Dann könnte der Balken bspw. bei 100 Bildern nach Bild 1 die Breite (1/100) pixel, nach Bild 2 (2/100) pixel, etc. haben?
Bin sehr dankbar für eure Hilfe!