Trong bài viết này, chúng ta sẽ trình bày các sử dụng PHP để tạo các file nén .zip dựa vào các file mình có, sau đó cho phép người dùng download file .zip này về máy tính của mình.
Phụ mục
File nén ZUP là gì ?
File có phần mở rộng .zip hiện nay khá phổ biến và hiện nay được hỗ trợ ở hầu hết các hệ điều hành nếu không muốn nói là tất cả.
File .zip là một dạng file nén dùng giảm dung lượng của một hay nhiều file mà nó chứa bên trong nhằm tối ưu khả năng lưu trữ, di chuyển và truyền tải trên Internet. Sự phổ biến của nó đến mức hiện nay “zip” được xem như một động từ. Ví dụ “mày zip file lại rồi hãy gửi cho tao nhé !” là một cách nói khá phổ biến cho hành động nén file để giảm dung lượng lưu trữ.
Ngoài .zip bạn còn có nhiều định dạng khác cũng có chức năng tương tự như .rar , .7z nhưng mình thấy .zip có lẽ là phổ biến nhất, được sử dụng nhiều nhất và hỗ trợ bởi nhiều hệ điều hành mà không cần cài đặt gì thêm như đã nói ở trên.
Nén (compress) file trong PHP
Trong PHP, file .zip có thể tạo hoặc chính sửa thông qua một class được hỗ trợ sẵn là ZipArchive. Quá trình nén và đóng gói file nén sẽ kết thúc khi hàm close() hoặc destroyed() được gọi.
open('new_zipfile.zip', ZipArchive::CREATE) === TRUE)
{
// Add files to the zip file
$myzip->addFile('boy.png');
$myzip->addFile('gray.jpeg');
// Add old.txt file to zip and rename it to newfile.txt
$myzip->addFile('old.txt', 'new.txt');
// Add a file write.txt file to zip using the text specified
$myzip->addFromString('write.txt', 'text will be added to the write.txt file');
// closing the zip file.
$myzip->close();
}
?>
Kết quả:
Tạo công cụ Zip file bằng PHP
Với kiến thức nền ở trên, bạn có thể xây dựng một công cụ giúp người dùng nén file bằng cách lựa chọn những file cần nén, tiếp theo là nén những file họ đã chọn thành một gói duy nhất có phần mở rộng là .zip sau đó tải về.
Đây là mã cho bạn:
Upload Files To Create Zip
Select file to zip
";
echo'';
}
?>
open('newzip.zip', ZipArchive::CREATE) === TRUE)
{
if(!empty($_POST['zip_list']))
{
foreach($_POST['zip_list'] as $selected)
{
$zip->addFile($selected);
}
echo"Selected files are successfully zipped
";
}
else
{
echo"Select atleast one";
}
$zip->close();
}
}
?>
Đoạn mã hoạt động theo quy trình sau:
- Người dùng lựa chọn file từ máy tính của họ
- Hệ thống upload file đã lựa chọn lên máy chủ PHP của bạn.
- Người dùng lựa chọn lại lần nữa những file nào cần nén
- Tiến hành nén file và trả về file download cho người dùng
Điểm quan trọng là bạn cần phải upload dữ liệu lên máy chủ.