Php का उपयोग कर एक ज़िप फ़ाइल के रूप में एकाधिक फ़ाइलों को डाउनलोड करें




zip (4)

आप php ज़िप lib के साथ करने के लिए तैयार हैं, और zend ज़िप lib भी उपयोग कर सकते हैं,

<?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/

और इस ZipArchive लिए php pear lib भी है

मैं php का उपयोग कर एक ज़िप फ़ाइल के रूप में एकाधिक फ़ाइलों को कैसे डाउनलोड कर सकता हूं?


आप xip.lib.php क्लास lib का उपयोग कर सकते हैं। zip.lib.php उदाहरण के लिए, इस article संदर्भ लें


यह 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();

आप ज़िप फ़ाइल बनाने और क्लाइंट को स्ट्रीम करने के लिए ZipArchive क्लास का उपयोग कर सकते हैं। कुछ इस तरह:

$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();

और इसे स्ट्रीम करने के लिए:

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

दूसरी पंक्ति ब्राउज़र को उपयोगकर्ता को डाउनलोड बॉक्स पेश करने के लिए मजबूर करती है और नाम filename.zip को संकेत देती है। तीसरी पंक्ति वैकल्पिक है लेकिन निश्चित (मुख्य रूप से पुराने) ब्राउज़र में सामग्री के आकार निर्दिष्ट किए बिना कुछ मामलों में समस्याएं हैं।





zip