Đây là cách để làm điều đó một cách DotNetZip: DI xác minh cho DotNetZip vì tôi đã sử dụng nó và nó là đến nay các thư viện nén dễ dàng nhất cho C# Tôi đã đi qua :)
Kiểm tra http://dotnetzip.codeplex.com/
http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples
Tạo zip có thể tải xuống trong ASP.NET. Ví dụ này tạo ra một zip động trong một phương thức postback ASP.NET, sau đó tải xuống zipfile tới trình duyệt yêu cầu thông qua Response.OutputStream. Không có kho lưu trữ zip nào được tạo trên đĩa.
public void btnGo_Click (Object sender, EventArgs e)
{
Response.Clear();
Response.BufferOutput= false; // for large files
String ReadmeText= "This is a zip file dynamically generated at " + System.DateTime.Now.ToString("G");
string filename = System.IO.Path.GetFileName(ListOfFiles.SelectedItem.Text) + ".zip";
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + filename);
using (ZipFile zip = new ZipFile())
{
zip.AddFile(ListOfFiles.SelectedItem.Text, "files");
zip.AddEntry("Readme.txt", "", ReadmeText);
zip.Save(Response.OutputStream);
}
Response.Close();
}
Nguồn
2010-10-21 05:59:17
Điều đó thật tuyệt ... xứng đáng với một upvote. Bạn có biết nếu có bất kỳ thời gian thực nào để biết kích thước nén không? Tôi muốn có thể cho người dùng biết kích thước của những gì họ sẽ tải xuống nếu được nén. – pearcewg
@pearcewg, tôi nghĩ trong trường hợp này giải pháp phụ thuộc vào yêu cầu của bạn. Nếu bạn biết nội dung của lưu trữ, bạn có thể nén tệp trước khi tạo trang và chỉ hiển thị kích thước của lưu trữ. Nếu nội dung của các lưu trữ có thể thay đổi thì đó là nhiệm vụ không thuận lợi. Suy nghĩ của tôi là: 1. đặt thông tin về kích thước tệp nén trong cơ sở dữ liệu 2. hiển thị kích thước xấp xỉ của các tệp nén theo thống kê nén. – bniwredyc
hoạt động như một sự quyến rũ. Cảm ơn –