Ich erstelle also einen PHP-Code, um mit ZipArchive eine Zip-Datei zu erstellen. Dadurch wird eine Zip-Datei erstellt und heruntergeladen. Um den Download zu initiieren, stelle ich den Link auf die PHP-Datei, die den PHP-Code enthält, in einen Iframe. Dieser Iframe wird dann in ein HTML-Dokument eingefügt.ZIP-Datei erneut herunterladen, ohne Zip-Dateien neu zu schreiben - ZipArchive PHP
Also immer wenn das HTML-Dokument geladen wird, wird der Downloader initiieren. Ich habe das Onload-Attribut im iframe-Tag erstellt, das eine Funktion zum Anzeigen einer Redownload-Schaltfläche aufruft.
Wenn also der Benutzer auf die Redownload-Schaltfläche klickt, möchte ich, dass dieselbe ZIP-Datei erneut heruntergeladen wird, aber den ZIP-Dateiprozess nicht erneut erstellen. Wie mache ich das?
Danke!
MY HTML-Code:
<iframe src="phpfile.php" onload="myFrameLoad(this)"></iframe>
MY PHP-Code für phpfile.php:
$coreFiles = Array('blah.jpg', 'blo.png');
# create new zip object
$coreZip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$coreZip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($coreFiles as $coreFile){
# download file
$download_file = file_get_contents($coreFile);
#add it to the zip
$coreZip->addFromString(basename($coreFile),$download_file);
}
# close zip
$coreZip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename=myZipFolder.zip');
header('Content-type: application/zip');
readfile($tmp_file);
unterstützt würden Sie die Datei irgendwo entpackt speichern müssen. und suchen Sie erst nach dem Aufruf von ZipArchive. Ja, das nimmt nach einer Weile viel Platz in Anspruch – Forbs
_ "Also, wann immer das HTML-Dokument geladen wird, wird der Downloader" _, _ "initiieren. Wenn also der Benutzer auf den Redownload-Knopf" _ Wo ist der Redownload-Knopf "steht? – guest271314
@ guest271314 Die Redownload-Schaltfläche wird über dem iFrame im HTML-Dokument angezeigt –