`

利用commons-fileupload上传文件

阅读更多

前端JSp页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title></title>
 
	
  </head>
  
  <body>
  
  <form name="uploadform" method="post" action="OnlineExam.do" ENCTYPE="multipart/form-data">
 	<table>
 	<tr>
 			<td>请选择要导入的试卷类型:  </td>
 			<td>
 			<select name="type">
 				<option value="0">请选择导入的试卷类型</option>
 				<option value="1">入门考试</option>
 				<option value="2">职称考试</option>
 				<option value="3">资格考试</option>
 				
 			</select>
 			</td>
 			
 	</tr>
 		<tr>
 			<td>请选择要导入的试卷:</td>
 			<td><input type="file" name="examFile"/><input type="submit" /></td>
 		</tr>
 	</table>
  </form>
</body>
</html>

 后端的JAVA代码:

 

package com.land.aminer.presentation.action;

public class OnlineExamAction extends PubAction {
	private static OnlineExamBiz onlineExamBiz = OnlineExamBiz.getInstance();

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		HttpSession session = request.getSession();
		OASession oaSession = (OASession) session.getAttribute("oaSession");
		String action=request.getParameter("action");
		
		RequestContext requestContext = new ServletRequestContext(request);
		String type="";
//		 f=new FileUpload();
//		f.setHeaderEncoding("UTF-8");
		// 判断表单是否是Multipart类型的。这里可以直接对request进行判断,不过已经以前的用法了
		if (FileUpload.isMultipartContent(requestContext)) {
			
			DiskFileItemFactory factory = new DiskFileItemFactory();
			// 设置文件的缓存路径
			factory.setRepository(Repository.getTempDir());
			ServletFileUpload upload = new ServletFileUpload(factory);
			upload.setHeaderEncoding("utf-8");//中文文件名乱码在这里处理
			// 设置上传文件大小的上限,-1表示无上限
			upload.setSizeMax(-1);
			List items = new ArrayList();
			try {
				// 上传文件,并解析出所有的表单字段,包括普通字段和文件字段
				items = upload.parseRequest(request);
			} catch (FileUploadException e1) {
				e1.printStackTrace();
			}
			// 下面对每个字段进行处理,分普通字段和文件字段
			Iterator it = items.iterator();
			ExamPaper ep=new ExamPaper();
			String fileName="";
			while (it.hasNext()) {
				FileItem fileItem = (FileItem) it.next();
				// 如果是普通字段
				if (fileItem.isFormField()) {
					if ("type".equalsIgnoreCase(fileItem.getFieldName())) {
						ep.setType(Integer.valueOf(fileItem.getString()));
					}
				}else{

//在这里,IE会提供包括路径在内的文件名,我要移除这个路径,可以用FileItemUtils来处理

if (fileItem.getName()!= null)
 {
	fileName = FilenameUtils.getName(fileItem.getName());
 }

					File savedFile = new File(Repository.getExamPaperDir(), fileName );
					fileItem.write(savedFile);
				}
			}
		}

		return mapping.findForward("edit");
	}


}
分享到:
评论

相关推荐

    commons-fileupload实现文件上传下载

    ### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...

    文件上传两个jar包commons-fileupload-1.3.1和commons-io-2.4

    在这个场景中,`commons-fileupload-1.3.1.jar` 和 `commons-io-2.4.jar` 是两个至关重要的库,它们提供了强大的文件上传支持。 `commons-fileupload-1.3.1.jar` 是Apache Commons FileUpload项目的实现,这是一个...

    commons-fileupload.jar和commons-io.jar

    对于MyBatis,虽然它主要关注数据库操作,但在处理文件时,可以先利用`Commons FileUpload`和`Commons IO`将文件保存到服务器,然后再通过MyBatis的SQL语句将文件路径或其它相关信息存入数据库。 在图片处理方面,...

    commons-fileupload-1.2.2.jar和commons-io-2.4.jar包

    在实际应用中,开发者通常会结合Servlet或Spring MVC等框架,利用FileUpload和IO库提供的API来构建文件上传功能。例如,使用`DiskFileItemFactory`配置临时存储路径,创建`ServletFileUpload`实例来解析请求,再通过...

    commons-fileupload-1.2.1.jar 和commons-io-1.4.jar

    在实际开发中,当你需要在Web应用中实现文件上传功能时,首先会配置`commons-fileupload-1.2.1.jar`来解析请求,然后利用`commons-io-1.4.jar`处理上传后的文件,比如保存到服务器的指定目录,或者进行一些预处理...

    commons-fileupload文件上传实例

    本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP...

    java文件上传jar(commons-fileupload-1.2.1.jar,commons-io-2.0.1.jar)

    通过结合使用Apache Commons FileUpload和Commons IO,开发者可以构建出高效且稳定的文件上传功能,同时避免了自己实现这些复杂逻辑的麻烦。这两个库的兼容性良好,广泛应用于各种Java Web项目中,是Java开发者的...

    使用commons-fileupload实现的文件上传和下载

    本教程将详细介绍如何利用commons-fileupload库来实现在Java Web应用中的文件上传和下载,并确保在整个过程中不会出现中文乱码问题。 1. **Apache Commons FileUpload简介** Apache Commons FileUpload是一个开源...

    commons-fileupload-1.3.2jar包和commons-io-2.5jar包.zip

    Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传和I/O操作的重要库。这两个库在处理Web应用,特别是基于JSP(JavaServer Pages)的文件上传功能时,扮演着核心角色。在这个主题中,我们将...

    利用commons-fileupload上传组件上传文件(一)

    在本文中,我们将深入探讨如何使用Apache Commons FileUpload组件来实现文件上传功能。Apache Commons FileUpload是一个用于处理HTTP请求中的多部分数据的Java库,它使得在Servlet或JSP应用中处理文件上传变得简单易...

    commons-fileupload-1.3.3.zip

    此漏洞为FileUpload 库中的一个高危漏洞,这个库作为Apache Struts 2的一部分,被用作文件上传的默认机制。攻击者可以在未经授权的情况下,执行任意代码并可获取目标系统的所有权限。 CNVD对该漏洞的综合评级为...

    webwork2.2.7在action中利用commons-fileupload.jar进行上传或直接读取文件流的配置与源代码及实例详解

    在这个教程中,我们将探讨如何在WebWork 2.2.7的Action中利用Apache Commons FileUpload库来实现文件上传功能,并处理文件流。Apache Commons FileUpload是一个强大的库,专门用于处理HTTP请求中的多部分/表单数据,...

    commons-fileupload.jar和commons-io.jar包

    在开发Java应用程序,尤其是涉及到Web应用中的文件上传功能时,`commons-fileupload.jar`和`commons-io.jar`是两个至关重要的库。这两个JAR文件分别提供了Apache Commons FileUpload和Apache Commons IO项目的功能,...

    commons-fileupload和commons-io的jar包

    例如,开发者可以先使用FileUpload解析出上传的文件,然后利用Commons IO将其保存到服务器的指定位置。 这两个库的源代码文件(sources)也一同提供,这对于学习和理解其内部实现机制非常有帮助。通过阅读源码,...

    最新实现上传下载 commons-fileupload-1.3.1和commons-io-2.4 整套下载

    `commons-fileupload-1.3.1`和`commons-io-2.4`是Apache Commons项目中的两个重要库,它们为处理文件上传和下载提供了强大的支持。本教程将详细介绍如何利用这两个库在Spring MVC框架中实现文件上传和下载。 `...

    commons-fileupload-1.2.1.jar和commons-io-1.4.jar

    接着,可以利用FileUpload API解析请求,获取上传文件的信息,并将其保存到服务器。 为了确保文件上传的安全性,开发者需要考虑以下几个关键点: 1. **文件大小限制**:限制用户上传文件的大小,防止大文件消耗过多...

    commons-fileupload commons-io.jar

    当你需要在Web应用中实现文件上传功能时,FileUpload负责解析请求并处理文件,而Commons IO则可以帮助你进行文件的存储、移动或处理。这两个库的结合,让开发者能方便地实现复杂的文件操作,同时保持代码的简洁和...

    commons-fileupload-1.2.1.jar commons-io-1.4.jar

    在使用这两个库进行文件上传时,通常先利用Commons IO处理文件I/O,然后用Commons FileUpload解析HTTP请求中的多部分数据,提取上传的文件。这样可以构建出稳定、健壮的文件上传功能,同时避免了直接处理Servlet API...

    commons-fileupload-1.2.1帮助文档

    《Java Web文件上传:commons-fileupload-1.2.1详解》 在Java Web开发中,文件上传是一项常见的功能,用户可能需要上传图片、文档等各类文件。Apache Commons FileUpload库是一个强大的工具,用于处理HTTP协议中的...

    commons-fileupload-1.2.1 ajax上传(进度条)

    通过以上步骤,我们可以实现一个利用Apache Commons FileUpload处理文件上传,结合AJAX和ProgressEvent显示进度条的Web应用。这样的功能不仅提高了用户体验,还使得文件上传过程更加可控和透明。需要注意的是,不同...

Global site tag (gtag.js) - Google Analytics