`
chenpenghui
  • 浏览: 39293 次
  • 性别: Icon_minigender_1
  • 来自: 台州
社区版块
存档分类
最新评论

FileUpload

    博客分类:
  • JAVA
 
阅读更多

以下为apache fileupload的使用。

先一个servlet:

package servlet;

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

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.filechooser.FileNameExtensionFilter;

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


public class Upload extends HttpServlet {

	public void init() throws ServletException {
		System.out.println("servlet-upload init!");
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			request.setCharacterEncoding("GBK");
			String path = "d:\\111";
			System.out.println("path > "+path);
			boolean flag = ServletFileUpload.isMultipartContent(request);  
			if (flag==true) {
				try {
					FileItemFactory factory = new DiskFileItemFactory();
					ServletFileUpload upload = new ServletFileUpload(factory);
					//可以设置最大文件长度
					//upload.setSizeMax(1024000);
					List<FileItem> fileItems = upload.parseRequest(request);
					Iterator<FileItem> iterator = fileItems.iterator();
					//以下遍历所有post上来的表单域
					while (iterator.hasNext()) {
						FileItem item = iterator.next();
						if(item!=null){
							if(item.isFormField()){
								String name = item.getFieldName();
								System.out.println("name : "+name);
							}else {
								String filename = item.getName();
								if(filename!=null){
									File file = new File(item.getName());
									if(!file.exists()){
										item.write(new File(path,file.getName()));
										System.out.println("success!");
									}
								}
							}
						}
					}
				} catch (FileUploadException e) {
					System.out.println("异常了。。");
					e.printStackTrace();
				} catch (Exception ae) {
					System.out.println("异常了。。");
					ae.printStackTrace();
				}
			}else {
				System.out.println("caonima");
			}
			//得到已经上传的文件
			List<String> fileOnDisk = new ArrayList<String>();
			File filePath = new File(path);
			String fileName[] = filePath.list();
			if(fileName!=null){
				for(String str : fileName){
					fileOnDisk.add(str);
				}
				request.setAttribute("fileOnDisk", fileOnDisk);
			}
			RequestDispatcher rd = request.getRequestDispatcher("/TestUpload.jsp");
			rd.forward(request, response);
	}

	public void destroy() {
		System.out.println("servlet-upload destroyed!");
	}

}

 web-xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>Upload</servlet-name>
    <servlet-class>servlet.Upload</servlet-class>
  </servlet>



  <servlet-mapping>
    <servlet-name>Upload</servlet-name>
    <url-pattern>/servlet/Upload</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 然后是测试页面:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>Test FileUpLoad!</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">


</head>

<body>
	<form action="<%=request.getContextPath()%>/servlet/Upload"
		method="post" enctype="multipart/form-data">
		<input type="file" name="uploadFile" value="浏览" /> <input
			type="submit" name="submit" value="submit" />
	</form>
	<%
		List list = (ArrayList)request.getAttribute("fileOnDisk");
		if (list != null) {
			out.println("***********************************<p>");
			for(int i=0;i<list.size();i++){
				out.println(list.get(i)+"<p>");
			}
			out.println("***********************************<p>");
		}
	%>
</body>


</html>
 收工。
分享到:
评论

相关推荐

    FileUpload控件自动上传

    在.NET框架中,FileUpload控件是用于处理用户在Web应用程序中上传文件的关键组件。它允许用户选择本地计算机上的文件,并将其发送到服务器进行进一步处理。在这个特定的场景中,我们关注的是FileUpload控件的自动...

    ASP.NET.FileUpload控件

    ASP.NET的FileUpload控件是Web开发中用于处理文件上传功能的重要组件。它允许用户从他们的本地计算机选择一个或多个文件,并将这些文件上传到服务器。在本文中,我们将深入探讨FileUpload控件的基本用法,包括如何在...

    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; 包含...

    fileupload

    &lt;jsp:useBean id="myUpload" scope="page" class="fileUpload.upBean" /&gt; //初始化工作 myUpload.initialize(pageContext); //设定允许的文件后缀名 //myUpload.setAllowedExtList("gif,jpg"); //设定允许...

    开发工具 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.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及源码

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

    commons-fileupload-1.4-bin.zip

    《Apache Commons FileUpload组件详解》 Apache Commons FileUpload是一个用于处理HTTP请求中多部分数据的Java库,尤其在上传文件时极为有用。标题中的"commons-fileupload-1.4-bin.zip"表明这是一个包含Apache ...

    fileUpload组件所需jar包

    Apache Commons FileUpload库是一个强大的工具,专门设计用于处理这种需求。本篇将详细讲解使用FileUpload组件实现JSP文件上传所需的步骤和关键知识点。 首先,`fileUpload组件`是Apache Commons项目的一个子项目,...

    最全的common-FileUpload.jar包

    在Java开发中,上传文件是一项常见的任务,Apache Commons FileUpload库正是为此而设计的。这个"最全的common-FileUpload.jar包"包含了处理HTTP请求中的多部分数据,特别是文件上传的功能。它使得开发者能够方便地从...

    使用fileupload组件实现文件上传功能

    使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...

    一个漂亮的fileupload控件

    "一个漂亮的fileupload控件"这个标题所指的,就是一种优化了上传文件功能的UI组件。FileUpload控件是网页表单中常见的一种元素,它允许用户选择本地计算机上的文件并将其上传到服务器。在这里,描述提到这个控件是...

    commons-fileupload-1.3.3-bin.tar.gz

    标题中的"commons-fileupload-1.3.3-bin.tar.gz"是一个压缩包文件,包含了Apache Commons FileUpload 1.3.3版本的二进制(bin)文件,通常包括JAR库和其他必要的资源。 Apache Commons FileUpload的工作原理是基于...

    updatepanel中不能使用fileupload的弥补方法[IFrame方式]

    UpdatePanel 中不能使用 FileUpload 的弥补方法 - IFrame 方式 在 ASP.NET Ajax 编程中,UpdatePanel 是一个常用的控件,它可以实现局部更新页面的功能。但是,在使用 UpdatePanel 时,我们发现 FileUpload 控件...

    .net使用FileUpLoad控件上传文件

    ### .NET 使用 FileUpload 控件上传文件 在 ASP.NET Web 应用程序中,经常需要实现文件上传功能,这可以通过使用 `FileUpload` 控件来完成。本文将详细介绍如何使用 `.NET` 中的 `FileUpload` 控件进行单个文件的...

    基于apache commons.fileupload的文件上传组件

    以下是一些关于Apache Commons FileUpload的关键知识点: 1. **多部分解析**:FileUpload库的核心功能是解析HTTP请求中的多部分数据。HTTP规范规定,文件上传通常通过“multipart/form-data”编码方式进行,...

    Apache Commons fileUpload实现文件上传

    ### Apache Commons fileUpload 实现文件上传详解 #### 引言 Apache Commons fileUpload 是一个用于处理 HTTP 文件上传的 Java 库。它简化了文件上传的过程,使得开发人员能够轻松地处理来自客户端的文件数据。本...

    FileUpload.Hasfile属性值一直为false

    在.NET开发过程中,`FileUpload`控件是一个常用的组件,用于处理用户在Web表单中上传文件的功能。当用户选择一个文件并提交表单时,`FileUpload`控件的`HasFile`属性通常会返回`true`,表示有文件被选中并且可以上传...

Global site tag (gtag.js) - Google Analytics