最近项目有一模块上处理上传ZIP文件,总结一下处理方法
File[] files=null;
try {
MultiPartRequestWrapper mpRequest =(MultiPartRequestWrapper)request; //struts2:对REQUEST进行转换,用于得到上传文件
HttpSession session=request.getSession();
files = mpRequest.getFiles("upload");
String[] fileNames = mpRequest.getFileNames("upload"); //得到文件名
String folder = request.getSession().getServletContext().getRealPath("input");//文件存放路径
for(int i=0;i<files.length;i++){
File file = new File(folder,fileName[i]); //存放文件
InputStream in; //输入流
try {
in = new FileInputStream(item); //得到文件上传流
FileOutputStream out = new FileOutputStream(files[i]);
byte[] buffer = new byte[4096]; // To hold file contents
int bytes_read;
while ((bytes_read = in.read(buffer)) != -1) {
out.write(buffer, 0, bytes_read);
}
if (in != null) { //关闭输入流
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) { //关闭输出流
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
UnZipper un=UnZipper.getInstance(); //Zip文件类实例化
un.UnZip(folder+"\\"+fileName); //解压ZIP文件(在服务器存储空间中)
fileName =fileName.replace('/', '\\').substring(0,fileName.lastIndexOf("."))+"\\"; //得到解压后文件夹名称
dirFile = new File(folder+"\\"+fileName); //得到解压后文件夹路径
File[] list = FileUtil.listSortedFiles(dirFile); //遍立文件夹,得到文件夹所有文件
if(list!=null&&list.length<5){ //如果文件数为小于5个,抛出
throw new BusinessException("文件数必需为5个");
}
if(list!=null&&list.length==5){ //文件名不符,抛出
for (int i = 0; i < list.length; i++){
if(!list[i].getName().equals("F"+(i+1)+".txt")){
throw new BusinessException("文件名称格式必需为F1.txt~F5.txt");
}
}
}
files[i].delete(); //删除上传文件
}
} catch (Exception e) {
if(files!=null){
for(File f:files){
if(f!=null){
f.delete(); //删除上传文件
}
}
}
e.printStackTrace();
解后得到文件后,进行业务处理
分享到:
相关推荐
总的来说,"jsp文件上传包.zip"是一个实用的工具,它简化了JSP中文件上传并解决中文乱码问题的过程,使得开发者能够更专注于业务逻辑,而不是基础的编码问题。在实际项目中,合理利用这类工具可以提高开发效率,同时...
总的来说,这个“免费的JSP多文件上传组件”是一个便捷的工具,可以帮助开发者在JSP应用中轻松实现文件上传功能,而无需从头编写复杂的文件处理逻辑。它可能包含详细的使用指南和示例,以帮助开发者快速上手。在实际...
总结,"ajax iframe jsp 无刷新上传文件.zip"包含的知识点涵盖了Ajax与Iframe结合的文件上传技术,JSP服务器端处理,JavaScript字符串操作,Struts2的验证和链接标签,以及Spring入门和JSP请求Action的方法。...
在文件上传下载的场景中,JSP通常用于构建用户界面,接收用户操作,而Servlet则处理业务逻辑,如读取上传的文件,保存到服务器,或者根据请求从服务器读取文件并发送回客户端。 文件上传的流程一般包括以下步骤: 1...
jsp实现文件上传文档 jsp实现文件上传文档是指使用jsp技术实现文件上传和下载功能的文档。该文档主要介绍了jspSmartUpload组件的安装和使用方法,以及该组件的特点和功能。 jsp实现文件上传文档的主要内容包括: ...
【标题】"jsp文件上传到数据库里例子下载"是一个...它涵盖了用户接口设计、文件处理、数据库操作等多个方面,是学习和实践Web开发的好材料。开发者可以通过阅读源码、运行示例,以及查阅相关文档,深入了解整个过程。
标题"jsp上传文件所需jar包.zip"指的是这个压缩包中包含了用于JSP文件上传的必要依赖。其中,`commons-fileupload-1.3.2.jar`是Apache Commons FileUpload的最新版本,它提供了解析HTTP请求中的多部分数据和处理文件...
通过这个库,我们可以轻松地读取和解压ZIP文件,非常适合在服务器端处理用户上传的压缩文件。 3. **文件上传流程**: - 用户通过表单选择要上传的文件,表单使用`multipart/form-data`编码类型,以便可以包含文件...
【标题】"JSP多个文件上传源代码程序"揭示了一个重要的Web开发技术,即在JavaServer Pages (JSP)环境中实现多文件上传的功能。在Web应用中,用户可能需要同时上传多个文件,如图片、文档等,这在论坛、博客、社交...
`jspSmartUpload`是一个非常实用的库,它简化了处理文件上传和下载的复杂性。本文将深入探讨如何使用`jspSmartUpload`来实现这两个功能,并详细解释其工作原理和相关知识点。 首先,`jspSmartUpload`是一个基于Java...
jsp实现文件的上传下载 jsp实现文件的上传下载是指通过jsp文件实现文件的上传和下载功能。jsp文件上传下载功能主要通过jspsmartupload组件来实现。jspsmartupload组件是一个免费的全功能的文件上传下载组件,适用于...
【标题】"jsp文件上传下载带删除功能"指的是在Java Web开发中,使用JSP(JavaServer Pages)技术实现的一项基础功能,它涵盖了文件的上传、下载以及删除操作。这样的功能通常用于用户交互,比如允许用户上传个人资料...
通过这个可运行的JSP文件上传实例,开发者可以学习到如何在实际项目中处理文件上传,并结合其他组件构建出完整的文件管理系统。记住,实践中遇到问题,不要忘记查阅相关文档或在线资源,不断学习和优化你的代码。
720-9素材与实例.zip这个压缩包文件包含了该教程相关的练习材料和实例代码,对于学习和实践JSP技术来说是非常宝贵的资源。 1. **JSP基础**:JSP是一种动态网页技术,基于Java语言,用于创建交互式和数据驱动的Web...
在"经过大型项目使用后大家反映上传速度相当快"这一描述中,我们可以推断该实例可能对服务器端的文件处理进行了优化,比如使用异步处理、分块上传、多线程等技术,以提高上传效率,同时可能还考虑了网络状况不佳时的...
综上所述,服务器Web管理和文件上传系统是一个涉及多方面技术的综合项目,涵盖Java后端开发、Web交互、文件处理、数据库操作、安全性等多个领域,通过合理的设计和实现,可以为用户提供高效、安全的远程服务器管理和...
在JavaWeb开发中,文件上传和下载功能是常见的需求,而JspSmartUpload库则为开发者提供了方便、高效的文件处理工具。本教程将深入探讨如何利用JspSmartUpload实现文件上传与下载,以及其在实际项目中的应用。 首先...
接下来,在后端 JSP 页面中,使用 SmartUpload 提供的方法来处理文件上传。 ```java // 导入必要的类 import com.jspsmart.upload.SmartUpload; import com.jspsmart.upload.File; // 初始化 SmartUpload ...
【标题】"jsp上传完整源码及SmartUpload组件"揭示了这个压缩包是关于使用JavaServer Pages(JSP)技术实现文件...这对于初学者和有经验的开发者来说都是一个宝贵的资源,有助于提升他们在实际项目中的文件处理能力。
【标题】"FileUpload_jsp无刷新...综上所述,"FileUpload_jsp无刷新文件上传源码.zip"是一个涵盖JSP、Servlet、AJAX以及文件处理、安全和用户体验等多个方面的项目,学习此源码有助于深入理解Web开发中的文件上传技术。