`
suzefeng8806
  • 浏览: 8400 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

commons-fileupload

    博客分类:
  • java
阅读更多
package com.szf.servlet;

import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private static final long FILE_MAX_SIZE = 4 * 1024 * 1024;

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		if (!ServletFileUpload.isMultipartContent(request)) {
			forward(request, response, "error form type");
		}
		String fileTempPath = this.getServletContext().getRealPath("/") + "filetemp";
		File tempDir = new File(fileTempPath);
		if (!tempDir.exists()) {
			tempDir.mkdirs();
		}
		FileItemFactory factory = new DiskFileItemFactory(4096, tempDir);

		ServletFileUpload sfu = new ServletFileUpload(factory);
		sfu.setFileSizeMax(FILE_MAX_SIZE);

		List<FileItem> fileItems = null;

		try {
			fileItems = sfu.parseRequest(request);
		} catch (FileUploadException e) {
			e.printStackTrace();
			if (e instanceof SizeLimitExceededException) {
				forward(request, response, "invalid file size");
			}
			return;
		}
		if (fileItems == null || fileItems.size() == 0) {
			forward(request, response, "please upload a file");
			return;
		}
		this.saveFile(request, response, fileItems);

	}

	private void forward(HttpServletRequest request, HttpServletResponse response, String message) throws ServletException, IOException {
		String url = "/index.jsp";
		request.setAttribute("message", message);
		request.getRequestDispatcher(url).forward(request, response);
	}

	private void saveFile(HttpServletRequest request, HttpServletResponse response, List<FileItem> fileItems) throws ServletException, IOException {
		for (FileItem fi : fileItems) {
			if (fi == null || fi.isFormField()) {
				continue;
			}
			File file = new File("d://"+fi.getName());
			try {
				fi.write(file);
			} catch (Exception e) {
				forward(request, response, e.getMessage());
			}
		}
	}

}

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}" scope="page"></c:set>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>upload</title>
  </head>
  
  <body>
  	<c:out value="${message}"></c:out>
  	<form action="${ctx}/servlet/UploadServlet" method="post" enctype="multipart/form-data">
  		文件<input type="file" name="file"/><br/>
  		<input type="submit" value="上传"/>
  	</form>
  </body>
</html>
分享到:
评论

相关推荐

    开发工具 commons-fileupload-1.3.2

    开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2...

    commons-fileupload-1.4-API文档-中文版.zip

    赠送jar包:commons-fileupload-1.4.jar; 赠送原API文档:commons-fileupload-1.4-javadoc.jar; 赠送源代码:commons-fileupload-1.4-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.4.pom; 包含...

    commons-fileupload-1.3.3-API文档-中文版.zip

    赠送jar包:commons-fileupload-1.3.3.jar; 赠送原API文档:commons-fileupload-1.3.3-javadoc.jar; 赠送源代码:commons-fileupload-1.3.3-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.3.3.pom;...

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    文件上传两个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组件上传问题

    在Web应用中,用户可能需要上传图片、文档等文件,这时`commons-fileupload`就发挥了重要作用。本篇文章将深入探讨这个组件的使用方法以及可能出现的问题。 首先,我们来看`demo.jsp`和`upload.jsp`这两个文件。`...

    commons-fileupload及源码

    在这个压缩包中,包含了`commons-fileupload-1.3.1-sources.jar`和`commons-fileupload-1.3.1.jar`两个文件,前者提供了源代码,后者是编译后的类库文件。 FileUpload组件的核心功能是解析HTTP请求中的多部分数据...

    commons-fileupload-1.3.3.jar commons-io-2.5.jar

    `commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 是Apache Commons项目中的两个重要库,它们提供了强大的文件上传功能,使得开发者可以轻松地处理用户通过表单提交的文件。 Apache Commons FileUpload是...

    commons-fileupload-1.3.jar和commons-io-1.2.jar.zip

    在这个场景中,我们关注的是"commons-fileupload-1.3.jar"和"commons-io-1.2.jar"这两个文件,它们被打包在一个名为"commons-fileupload-1.3.jar和commons-io-1.2.jar.zip"的压缩文件中。 **Apache Commons ...

    commons-fileupload组件和commons-io组件

    Apache Commons项目提供了两个非常实用的组件,即Commons-Fileupload和Commons-IO,来帮助开发者处理这一任务。这两个组件是Java Web开发中的重要工具,特别是对于初学者来说,它们简化了文件上传的复杂过程。 **...

    commons-fileupload-1.2.1.jar与commons-io-1.3.2.jar

    首先,我们来详细了解一下`commons-fileupload-1.2.1.jar`。Apache Commons FileUpload是Apache软件基金会的一个项目,提供了一套强大的工具,用于处理HTTP请求中的多部分(multipart)数据,也就是通常所说的文件...

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

    Apache Commons项目提供了两个非常重要的库,即`commons-fileupload-1.2.2.jar`和`commons-io-2.4.jar`,它们是实现这些功能的关键工具。 `commons-fileupload-1.2.2.jar`是Apache Commons FileUpload的实现,它是...

    commons-fileupload commons-io

    在Java开发中,`commons-fileupload`和`commons-io`是两个非常重要的库,它们主要用于处理文件上传和I/O操作。这两个库为开发者提供了高效、便捷的文件处理能力,极大地简化了相关编程任务。 `commons-fileupload`...

    commons-fileupload-1.2.2

    commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-...

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

    总结来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.3.2.jar`是Java Web应用中处理文件上传的必备工具,它们提供了丰富的功能和良好的性能,简化了开发流程,使开发者可以专注于业务逻辑而不是底层细节。

    commons-fileupload.jar和commons-io.jar

    Apache Commons FileUpload和Commons IO两个库是Java中处理文件上传的关键组件,它们为SpringMVC和MyBatis这样的框架提供了强大的支持。本篇文章将深入探讨这两个库以及它们在图片处理中的作用。 首先,`commons-...

    commons-fileupload-1.3.3-API文档-中英对照版.zip

    赠送jar包:commons-fileupload-1.3.3.jar; 赠送原API文档:commons-fileupload-1.3.3-javadoc.jar; 赠送源代码:commons-fileupload-1.3.3-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.3.3.pom;...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    标题中的"commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar"提到了Apache Commons FileUpload的1.3.3版本的库及其源码。Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分...

    java 上传 SmartUpload&commons-fileupload

    "commons-fileupload-1.2.2.jar"是该库的版本1.2.2的jar文件。这个库提供了更底层的文件上传处理,允许开发者更精细地控制上传过程。与SmartUpload相比,Commons-Fileupload更轻量级,更适合那些需要自定义上传逻辑...

    commons-fileupload-1.2.jar和commons-io-1.3.2.jar

    -下载后解压zip包,将commons-fileupload-1.1.1.jar,和commons-io-1.2.jar(这里我们用的是更新的版本,但是用法是一样的)复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,如果目录不存在请自建目录。 新建一个...

Global site tag (gtag.js) - Google Analytics