Hướng dẫn php download multiple files as zip - php tải xuống nhiều tệp dưới dạng zip

Làm cách nào để tải xuống nhiều tệp dưới dạng tệp zip bằng PHP?

Đã hỏi ngày 18 tháng 11 năm 2009 lúc 8:06Nov 18, 2009 at 8:06

1

Bạn có thể sử dụng lớp ZipArchive để tạo tệp zip và truyền nó cho máy khách. Cái gì đó như:

$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[];

và để truyền phát nó:

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

Dòng thứ hai buộc trình duyệt phải trình bày một hộp tải xuống cho người dùng và nhắc tên filename.zip. Dòng thứ ba là tùy chọn nhưng một số trình duyệt [chủ yếu cũ hơn] có vấn đề trong một số trường hợp nhất định mà không có kích thước nội dung được chỉ định.

Đã trả lời ngày 18 tháng 11 năm 2009 lúc 8:08Nov 18, 2009 at 8:08

cletuscletuscletus

Huy hiệu vàng 605K163163 gold badges903 silver badges940 bronze badges

13

Đây là một ví dụ hoạt động của việc tạo ZIP trong 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[];

Ren

1.1135 huy hiệu vàng15 Huy hiệu bạc24 Huy hiệu đồng5 gold badges15 silver badges24 bronze badges

Đã trả lời ngày 10 tháng 5 năm 2013 lúc 10:58May 10, 2013 at 10:58

Sun yêu tình yêuSun Love

7245 Huy hiệu bạc9 Huy hiệu Đồng5 silver badges9 bronze badges

1

Bạn đã sẵn sàng để làm với Php Zip Lib và cũng có thể sử dụng Zend Zip Lib,


//devzone.zend.com/985/dynamically-creating-compressed-zip-archives-with-php/

Và cũng có Php Pear Lib cho //www.php.net/manual/en/class.ziparchive.php này

Đã trả lời ngày 6 tháng 9 năm 2013 lúc 13:50Sep 6, 2013 at 13:50

dev.meghrajdev.meghrajdev.meghraj

7.8605 Huy hiệu vàng36 Huy hiệu bạc73 Huy hiệu đồng5 gold badges36 silver badges73 bronze badges

Tải xuống demo

Hôm nay tôi đang chia sẻ cách tạo tệp zip gồm nhiều tệp bằng PHP và tải xuống tệp zip đó khi nhấp. Với mục đích này, tôi sẽ cần một thư mục nơi tất cả các tệp có sẵn có thể được chọn và tải xuống. Tôi cũng sẽ tạo một trang PHP duy nhất chứa các tập lệnh sau.

HTML

Tạo một trang PHP đơn giản và sao chép mẫu dưới đây.



Select All
PDF File
Word File
Image File

jQuery

Thêm tập lệnh sau trong trang chân trang của trang web. Don Tiết quên thêm thư viện jQuery trước tập lệnh này.

$['#submit'].prop["disabled", true];
$["#checkAll"].change[function [] {
      $["input:checkbox"].prop['checked', $[this].prop["checked"]];
	  $['#submit'].prop["disabled", false];
	  if [$['.chk'].filter[':checked'].length < 1]{
			$['#submit'].attr['disabled',true];}
}];

$['input:checkbox'].click[function[] {
        if [$[this].is[':checked']] {
			$['#submit'].prop["disabled", false];
        } else {
		if [$['.chk'].filter[':checked'].length < 1]{
			$['#submit'].attr['disabled',true];}
		}
}];

Như bạn có thể thấy ở trên rằng khi bạn nhấp vào chọn tất cả, tất cả các hộp kiểm đều được kiểm tra hoặc bỏ chọn. Bạn có thể xem hướng dẫn của tôi về & nbsp; cách chọn bỏ chọn tất cả các hộp kiểm bằng jQuery.

PHP

Sao chép dán tập lệnh PHP dưới đây vào đầu trang web. Khi ai đó gửi biểu mẫu trước, chúng tôi đang kiểm tra xem mảng tệp có được đặt hay không, thì chúng tôi đang tạo tệp zip và tải xuống tệp đó.files array is set or not, then we are creating zip file and downloading that file.

Bài Viết Liên Quan

Chủ Đề