java解压rar文件-Java实现对文本文件MD5加密并ftp传送到远程主机目录
需求描述:
前段时间写了一篇博客《Java实现对文本文件MD5加密并ftp传送到远程主机目录》,实现了一部分的业务需求。然而有些业务可能不止传送一个文件,有时候客户需要传多个文件,原有系统并不支持,因此现在需要在这个的基础上新开发一个功能,要求可以实现该业务场景,传送多个文件到远程主机指定的目录上。
业务梳理:
对于此需求,我有两个想法,想法一是通过点击文件上传按钮的选择文件的时候,设置让用户选择多个文件,Java端对于文件的对象的信息设置成数组,但是这个方法,我尝试设置Struts的标签属性multiple="multiple",也并没有实现想要达到的效果,查阅全网多篇博客无果不得不放弃想法一。
想法二是用户把需要上传的文本文件上传,打成一个zip包,Java获取到该文件之后,对其进行解压,然后遍历该目录下的文件,对每一个文件进行MD5加密,生成同名的MD5文件,然后获取需要传送到的主机的IP、账户、密码、以及上传的目录信息。
其大致的流程图如下图所示:
程序实现:
一、前台界面
由于是新增的业务场景,所以前台界面也需要修改,提供下拉选项给业务人员选择。
需要对业务人员上传的文件类型做下限制,写在JS的函数里面
实现的前台界面如图所示:
二、文件对象的操作
用户上传文件后,系统通过Struts2获取到文件对象,复制到datapath随机生成的子目录下
这里开始对文件类型进行判断,如果是后缀为zip的文件类型,调用ZipUtil.unzip(newFile, datapath)方法对文件对象进行解压,解压之后,遍历该目录下的文件,如果后缀为".000",则进行md5加密,生成同名MD5文件,这个动作是通过调用filemd5.getMD5(fortmp)方法来完成的。最后是操作完之后java解压rar文件,为避免把zip文件也上传,所以这里通过newFile.delete()把文件删掉。
解压的方法ZipUtil.unzip,这里用到ant.jar,需要导入一下,或者添加maven的pom依赖,这里只写了一个zip的解压方法,并没有写到其它格式如rar的解压。
MD5的加密算法以及生成MD5文件java解压rar文件,可以参考上一篇博客,Java实现对文本文件MD5加密并ftp传送到远程主机目录,这里不再描述,或者参考下网上博客。
三、获取主机的IP、账户、密码、目录信息以及实现上传
这些操作在上一篇博客都有提及,这里就只发一张图片吧
前台界面的OperationType对应数据库配置表中的AUDIT_FLAG,通过Java调用Ibaits下面图片的sql就可以获取到相关的信息了
实现把当前文件夹的文件上传在上一篇博客也有提及,这里我就只贴一张图