?昨天整了个J2EE文件下载的code,今天熬夜,凌晨半点了,终于把J2EE文件上传一口气给code下来了...
?
本文以Commons FileUpload为例,展示如何利用Commons FileUpload在J2EE中上传文件。
展示DEMO如下,欢迎拍砖。~—~
有点缺憾,就是没做成进度条的效果,因为目前还没头绪,-_-? .....
web.xml
? ? index.jsp<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"><web-app> <servlet> <servlet-name>FileUploadServlet</servlet-name> <servlet-class>com.syc.servlet.FileUploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FileUploadServlet</servlet-name> <url-pattern>/FileUploadServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list></web-app>
?
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gbk" pageEncoding="gbk"%><html><body> <form action="FileUploadServlet" enctype="multipart/form-data" method="post"> <input type="text" name="username" /><br /> <input type="file" name="myfile" /><br/> <input type="file" name="myfile" /><br/> <input type="submit" /> </form></body></html>
?
FileUploadServlet.java
package com.syc.servlet;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;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.FileUpload;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.RequestContext;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.servlet.ServletRequestContext;public class FileUploadServlet extends HttpServlet { /** * */ private static final long serialVersionUID = -1315419529138965268L; public FileUploadServlet() { super(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("gbk"); RequestContext requestContext = new ServletRequestContext(request); if (FileUpload.isMultipartContent(requestContext)) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(new File("e:/Log/")); ServletFileUpload upload = new ServletFileUpload(factory); // upload.setHeaderEncoding("gbk"); upload.setSizeMax(2000000); List items = new ArrayList(); try { items = upload.parseRequest(request); } catch (FileUploadException e1) { System.out.println("文件上传发生错误" + e1.getMessage()); } Iterator it = items.iterator(); while (it.hasNext()) { FileItem fileItem = (FileItem) it.next(); if (fileItem.isFormField()) { System.out.println(fileItem.getFieldName() + " " + fileItem.getName() + " " + new String(fileItem.getString().getBytes( "iso8859-1"), "gbk")); } else { System.out.println(fileItem.getFieldName() + " " + fileItem.getName() + " " + fileItem.isInMemory() + " " + fileItem.getContentType() + " " + fileItem.getSize()); if (fileItem.getName() != null && fileItem.getSize() != 0) { File fullFile = new File(fileItem.getName()); File newFile = new File("e:/Log/" + fullFile.getName()); try { fileItem.write(newFile); } catch (Exception e) { e.printStackTrace(); } } else { System.out.println("文件没有选择 或 文件内容为空"); } } } } }}
?