Upload và giải nén file Zip ngay trên server
Thông thường để upload file lên server chúng ta sử dụng control upload trong asp.net, nhưng đối với file lớn thì sao? Như vậy chúng ta cần zip file đó lại, nhưng upload lên server rồi thì sao để giải nén nó, vậy bài viết sau sẽ giải quyết việc đó giúp bạn
Để thực hiện nén file bạn sử dụng thư viện SharpZipLib
Đầu tiên chúng ta tạo một website, sau đó nhúng thư viện bên trên vào. Tiếp theo chúng ta tạo 2 folder trên server, một để phục vụ cho việc upload, một để phục vụ cho việc giải nén.
Trong trang default.aspx chúng ta thêm 3 control là: FileUpload, Label, Button.
Để thực hiện nén file bạn sử dụng thư viện SharpZipLib
Đầu tiên chúng ta tạo một website, sau đó nhúng thư viện bên trên vào. Tiếp theo chúng ta tạo 2 folder trên server, một để phục vụ cho việc upload, một để phục vụ cho việc giải nén.
Trong trang default.aspx chúng ta thêm 3 control là: FileUpload, Label, Button.
1
2
3
4
5
6
7
| <div> <asp:FileUpload ID= "FileUpload1" runat= "server" /> <asp:Button ID= "btnUpload" runat= "server" Text= "Upload and Extract" onclick= "btnUpload_Click" /> <br /> <asp:Label ID= "lblMsg" runat= "server" ></asp:Label> </div> |
Với sự kiện click button thì đoạn code dưới đây sẽ thực hiện việc upload file đã chọn lên server, sau đó nó lấy thông tin của file được upload và show ra label, còn lại, sẽ giải nén file vào thư mục đã chọn:
1
2
3
4
5
6
7
8
9
10
11
12
13
| if (FileUpload1.HasFile) { string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName); FileUpload1.PostedFile.SaveAs(Server.MapPath( "compressed" ) + "/" + FileName); FileInfo finfo = new FileInfo(Server.MapPath( "compressed" ) + "/" + FileName); long FileInBytes = finfo.Length; long FileInKB = finfo.Length / 1024; FastZip archiveFile = new FastZip(); archiveFile.ExtractZip(Server.MapPath( "compressed" ) + "/" + FileName, Server.MapPath( "extracted" ), "" ); lblMsg.Text = "File uploaded and extracted successfully,,<br />" ; lblMsg.Text += "File Name: " + FileName + "<br />" ; lblMsg.Text += "Size:" + FileInKB.ToString() + "KB <br />" ; } |
Comments[ 0 ]
Đăng nhận xét