当前位置: 代码迷 >> J2EE >> J2EE下传文件至服务器
  详细解决方案

J2EE下传文件至服务器

热度:93   发布时间:2016-04-22 00:37:26.0
J2EE上传文件至服务器

?昨天整了个J2EE文件下载的code,今天熬夜,凌晨半点了,终于把J2EE文件上传一口气给code下来了...

?

本文以Commons FileUpload为例,展示如何利用Commons FileUpload在J2EE中上传文件。

展示DEMO如下,欢迎拍砖。~—~

有点缺憾,就是没做成进度条的效果,因为目前还没头绪,-_-? .....

web.xml

<?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>

?

?

index.jsp

?

<%@ 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("文件没有选择 或 文件内容为空");					}				}			}		}	}}

?

  相关解决方案