Trong Hướng dẫn PHP này, tôi sẽ cho bạn biết cách tạo tệp zip bằng cách sử dụng lớp ZIP "ZipArchive" của PHP
Bạn có thể sử dụng ví dụ này để tải xuống nhiều tệp cùng lúc bằng cách tạo tệp zip, bạn chỉ cần thêm các tệp tải xuống trong tệp zip với sự trợ giúp của lớp ZIP của PHP
Trong ví dụ này, tôi sẽ sử dụng phương thức open[]
để mở hoặc tạo bất kỳ tệp zip nào và phương thức addFile[]
được sử dụng để thêm tệp vào kho lưu trữ từ đường dẫn đã cho và phương thức close[]
được sử dụng để đóng tệp zip một cách an toàn
Bạn phải đặt tiêu đề chính xác để buộc tải xuống. Bạn có thể truyền mảng tệp trong hàm createZipArchive[]
function zipFilesDownload[$file_names,$archive_file_name,$file_path]{
$zip = new ZipArchive[];
if [$zip->open[$archive_file_name, ZIPARCHIVE::CREATE ]!==TRUE] {
exit["cannot open \n"];
}
foreach[$file_names as $files]{
$zip->addFile[$file_path.$files,$files];
}
$zip->close[];header["Content-type: application/zip"];
header["Content-Disposition: attachment; filename=$archive_file_name"];
header["Pragma: no-cache"];
header["Expires: 0"];
readfile["$archive_file_name"];
exit;
}$fileNames=array['files/file1.docx','files/file1.pdf'];
$zip_file_name='myFile.zip';
$file_path=dirname[__FILE__].'/';
zipFilesDownload[$fileNames,$zip_file_name,$file_path];
?>
Cũng kiểm tra
Giải nén tập tin trong máy chủ Web
Tải tập tin
Tổng số lượt tải xuống. 4303
Tệp zip chắc chắn là định dạng tệp phổ biến trên các nền tảng. Chúng ta nên được trang bị tốt để xử lý nó theo chương trình. Chúng ta sẽ xem về cách tạo một tệp zip gồm nhiều tệp bằng PHP cho trường hợp sử dụng tải lên nhiều tệp
Chúng tôi sẽ có một biểu mẫu HTML để tạo điều kiện tải lên nhiều tệp. Sau đó, khi tải lên thành công, các tệp đó sẽ được nén thành một tệp duy nhất bằng PHP. Hãy để chúng tôi đi bộ qua nó
Để tải lên nhiều tệp, biểu mẫu HTML phải chứa một loạt các trường nhập tệp. Trước đây, chúng ta đã thấy nhiều ví dụ PHP để tải tệp lên
Click here to download the zip file
Choose File
Tạo zip bằng cách sử dụng PHP ZipArchive
ZipArchive là lớp PHP được sử dụng để làm việc với các tệp zip. Đảm bảo tiện ích mở rộng zip được bật trong cài đặt PHP của bạn
Trong mã PHP bên dưới, đối tượng ZipArchive được tạo và sử dụng để gọi các phương thức tạo tệp zip
Sau khi tạo tệp zip, các tệp do người dùng tải lên sẽ được chuyển đến kho lưu trữ zip. Trong mã này, các tệp đã tải lên cũng được chuyển đến thư mục đích theo chỉ định
Trước đây, chúng ta đã thấy cách tải tệp lên thư mục đích bằng PHP. Hàm PHP move_uploaded_file[$filename, $destination] được sử dụng để thực hiện việc này. Nó yêu cầu tên của tệp được tải lên và đường dẫn đích
Sau khi tệp zip đầu ra được tạo cùng với các tệp đã tải lên, phiên bản zip sẽ bị hủy bằng cách gọi phương thức đóng ZipArchive. Sau đó, đường dẫn nguồn tệp zip đã tạo được gửi dưới dạng phản hồi
Nếu không có tệp nào được chọn thì thông báo lỗi xác thực phía máy chủ sẽ được trả về. Phản hồi lỗi và thành công được sử dụng để hiển thị xác nhận phù hợp cho người dùng
open[$zip_name, ZipArchive::CREATE] !== TRUE] {
$error .= "Sorry ZIP creation is not working currently.
";
}
$imageCount = count[$_FILES['img']['name']];
for[$i=0;$iaddFromString[$_FILES['img']['name'][$i], file_get_contents[$_FILES['img']['tmp_name'][$i]]];
// moving files to the target folder.
move_uploaded_file[$_FILES['img']['tmp_name'][$i], './uploads/' . $newname];
}
$zip->close[];
// Create HTML Link option to download zip
$success = basename[$zip_name];
} else {
$error = 'Error!! Please select a file.';
}
}
Tạo tệp Zip của nhiều tệp đã tải lên Đầu ra ví dụ PHP
Ảnh chụp màn hình bên dưới cho thấy phản hồi thành công và thất bại của ví dụ PHP này. Trong phản hồi thành công, nó sẽ hiển thị thông báo văn bản với tùy chọn tải xuống tệp zip đã tạo
Sự kết luận
Mã đơn giản này để tạo tệp zip bằng PHP sẽ hữu ích cho bạn khi phát triển ứng dụng web bao gồm yêu cầu này. Xử lý tệp trong PHP được hỗ trợ rất nhiều bởi các hàm và lớp dựng sẵn có sẵn trong lõi của nó
Thật đơn giản và dễ dàng với các lớp lõi PHP
Chúng tôi đã thấy các tình huống có thể xảy ra trong đó ví dụ tạo zip với nhiều tệp được tải lên sẽ hữu ích. Điều này có thể tạo ra một tia sáng cho các nhà phát triển web đang tìm kiếm giải pháp trong các tình huống như vậy
Với giao diện Bootstrap, giao diện người dùng có đơn vị thành phần kết hợp để chọn tệp, tải lên và tải xuống đầu ra zip. Nếu bạn muốn làm cho nó đơn giản, bạn có thể tách thư viện Bootstrap khỏi ví dụ và sử dụng khung để làm cho nó phù hợp với ứng dụng của bạn
Hy vọng bài viết này sẽ hữu ích cho các bạn độc giả, những người đang làm cho ngày của tôi luôn luôn. Vui lòng chia sẻ nhận xét của bạn, cách tiếp cận thay thế trên mã của tôi