Java實現zip壓縮檔的解壓

來源:互聯網
上載者:User

標籤:時間   img   類型   文字檔   相關   加密算   上傳   技術分享   其它   

需求描述:

前段時間寫了一篇部落格《Java實現對文字檔MD5加密並ftp傳送到遠程主機目錄》,實現了一部分的業務需求。然而有些業務可能不止傳送一個檔案,有時候客戶需要傳多個檔案,原有系統並不支援,因此現在需要在這個的基礎上新開發一個功能,要求可以實現該業務情境,傳送多個檔案到遠程主機指定的目錄上。

業務梳理:

對於此需求,我有兩個想法,想法一是通過點擊檔案上傳按鈕的選擇檔案的時候,設定讓使用者選擇多個檔案,Java端對於檔案的對象的資訊設定成數組,但是這個方法,我嘗試設定Struts的<s:file ></s:file>標籤屬性multiple="multiple",也並沒有實現想要達到的效果,查閱全網多篇部落格無果不得不放棄想法一。

想法二是使用者把需要上傳的文字檔上傳,打成一個zip包,Java擷取到該檔案之後,對其進行解壓,然後遍曆該目錄下的檔案,對每一個檔案進行MD5加密,產生同名的MD5檔案,然後擷取需要傳送到的主機的IP、賬戶、密碼、以及上傳的目錄資訊。

其大致的流程圖如所示:

程式實現:

一、前台介面

由於是新增的業務情境,所以前台介面也需要修改,提供下拉選項給業務人員選擇。

需要對業務人員上傳的檔案類型做下限制,寫在JS的函數裡面

實現的前台介面:

二、檔案對象的操作

使用者上傳檔案後,系統通過Struts2擷取到檔案對象,複製到datapath隨機產生的子目錄下

這裡開始對檔案類型進行判斷,如果是尾碼為zip的檔案類型,調用ZipUtil.unzip(newFile, datapath)方法對檔案對象進行解壓,解壓之後,遍曆該目錄下的檔案,如果尾碼為".000",則進行md5加密,產生同名MD5檔案,這個動作是通過調用filemd5.getMD5(fortmp)方法來完成的。最後是操作完之後,為避免把zip檔案也上傳,所以這裡通過newFile.delete()把檔案刪掉。

解壓的方法ZipUtil.unzip,這裡用到ant.jar,需要匯入一下,或者添加maven的pom依賴,這裡唯寫了一個zip的解壓方法,並沒有寫到其它格式如rar的解壓。

MD5的密碼編譯演算法以及產生MD5檔案,可以參考上一篇部落格,Java實現對文字檔MD5加密並ftp傳送到遠程主機目錄,這裡不再描述,或者參考下網上部落格。

三、擷取主機的IP、賬戶、密碼、目錄資訊以及實現上傳

這些操作在上一篇部落格都有提及,這裡就只發一張圖片吧

前台介面的OperationType對應資料庫配置表中的AUDIT_FLAG,通過Java調用Ibaits下面圖片的sql就可以擷取到相關的資訊了

實現把當前檔案夾的檔案上傳在上一篇部落格也有提及,這裡我就只貼一張圖

最後是反饋結果

總結:

本篇部落格在上一篇部落格的基礎上實現對zip上傳檔案的解壓,對解壓後的檔案進行MD5加密產生同名MD5檔案,然後實現ftp上傳到遠程主機上。其中商務程序如所示

如果你有需要你可以到https://github.com/rootzhongfengshan/the-repository-of-zhongfengshan.git中的Java_project目錄下擷取zip的源碼。

Java實現zip壓縮檔的解壓

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.