Come posso scaricare più file come file zip usando php?Scaricare più file come file zip utilizzando php
risposta
È possibile utilizzare la classe ZipArchive
per creare un file ZIP e trasmetterlo al client. Qualcosa di simile:
$files = array('readme.txt', 'test.html', 'image.gif');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
e di streaming:
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
La seconda linea costringe il browser per presentare una scatola di download per l'utente e richiede il nome filename.zip. La terza riga è facoltativa, ma alcuni browser (soprattutto più vecchi) presentano problemi in alcuni casi senza specificare la dimensione del contenuto.
Creare un file zip, quindi scaricare il file, impostando l'intestazione, leggere il contenuto della zip e stampare il file.
http://www.php.net/manual/en/function.ziparchive-addfile.php
È possibile utilizzare il lib xip.lib.php Class. zip.lib.php Per esempio, fare riferimento a questa article
Il collegamento dell'articolo è già morto –
Questo è un esempio di lavoro di fare ZIP in PHP:
$zip = new ZipArchive();
$zip_name = time().".zip"; // Zip name
$zip->open($zip_name, ZipArchive::CREATE);
foreach ($files as $file) {
echo $path = "uploadpdf/".$file;
if(file_exists($path)){
$zip->addFromString(basename($path), file_get_contents($path));
}
else{
echo"file does not exist";
}
}
$zip->close();
Salve, signore, per favore, qual è la differenza tra questa e la risposta di clets? –
Questa risposta funziona! La differenza è addFromString, addFile è mal codificato. –
si è pronti a fare con php zip lib, e possono utilizzare Zend lib zip troppo,
<?PHP
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open('app-0.09.zip') !== TRUE) {
die ("Could not open archive");
}
// get number of files in archive
$numFiles = $zip->numFiles;
// iterate over file list
// print details of each file
for ($x=0; $x<$numFiles; $x++) {
$file = $zip->statIndex($x);
printf("%s (%d bytes)", $file['name'], $file['size']);
print "
";
}
// close archive
$zip->close();
?>
http://devzone.zend.com/985/dynamically-creating-compressed-zip-archives-with-php/
e c'è anche php pear lib per questa http://www.php.net/manual/en/class.ziparchive.php
- 1. Scaricare più file come cartella zip utilizzando php
- 2. scaricare più file come zip in .net
- 3. Come scaricare questo file PDF utilizzando php
- 4. Python: Come scaricare un file zip
- 5. come scaricare un file zip usando angolare
- 6. Crea zip con PHP aggiungendo file dall'URL
- 7. Come scaricare un file utilizzando l'arricciatura
- 8. Come posso scaricare un file zip in python usando urllib2?
- 9. Come posso scaricare il file zip in C#?
- 10. Dove scaricare tutti gli elementi polimerici come file zip?
- 11. Come scaricare un file zip da un sito (python)
- 12. come crittografare file zip utilizzando zip4j
- 13. Come aggiungere più file a un file zip con zip.js?
- 14. Come creare un file zip di più file di immagine
- 15. scaricare un file da FTP utilizzando curl e php
- 16. Carica più file utilizzando HTML5 e PHP
- 17. Shiny: scaricare archivio zip
- 18. Scaricare un file zip ed estrarlo in memoria usando Python3
- 19. Come scaricare file RTSP raw su file?
- 20. Download del file .zip esegue un file php danneggiato
- 21. Decomprimere un file zip utilizzando zlib
- 22. Come scaricare un file temporaneo
- 23. In Linux, zip più directory in un unico file zip
- 24. sottodirectory in un file ZIP utilizzando ZipOutputStream
- 25. Genera scaricare file di collegamento a PHP
- 26. Download di più file senza l'uso di file zip
- 27. Come duplicare un file PHP utilizzando PHP
- 28. Creazione di file .zip
- 29. Come crittografare un file .zip?
- 30. Scaricare file privato da S3 utilizzando bash
informazioni fantastiche. Grazie! – a432511
Non dovrebbe essere '$ zip = new ZipArchive;' invece di '$ zip = new ZipFile;'? – Matthieu
@Matthieu Le parentesi non sono necessarie. Guarda negli esempi: http://www.php.net/manual/en/ziparchive.open.php –