`
namezhou
  • 浏览: 154875 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jsp的文件上传

阅读更多

JSP文件上传,借助了Apache组织的几个插件

分别是:

commons-beanutils-1.8.3-bin.zip

commons-fileupload-1.2.1-bin.zip

commons-io-1.4-bin.zip

下载地址:

http://commons.apache.org/fileupload/

http://commons.apache.org/io/

http://commons.apache.org/beanutils/

代码是复制的别人的,多加了一些注释..myeclipse6.5 + tomcat 5.5 + jdk1.6 测试通过

 

原文 http://www.blogjava.net/lushengdi/archive/2009/01/09/227063.html

package com.dowebber.upload;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

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

import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;

/*******************************************************************************
 * 文件上传后台代码
 * 
 * @author namezhou@ail.com
 * @see orin http://www.blogjava.net/lushengdi/archive/2009/01/09/227063.html
 * @version 2.0 2010-06-07
 * 
 */
public class UploadServlet extends HttpServlet {
	File tmpDir = null;// 初始化上传文件的临时存放目录
	File saveDir = null;// 初始化上传文件后的保存目录

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

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
	/** ************************************************************* */
		/* 概要
		 *  1.创建 DiskFileItemFactory 类的对象,并设置临时文件路径(一个File对象)和缓存数据大小 
		 *  2.创建 ServletFileUpload 类的对象,并设置单个文件大小限制和总文件大小限制
		 *  3.通过 ServletFileUpload 类的getItemIterator(request)获取本次请求的文件列表迭代器对象(FileItemIterator)
		 *  4.迭代集合,并取出每个文件流,保存到指定的目录下
		 */
		
		try{
	        if(ServletFileUpload.isMultipartContent(request)){
	          DiskFileItemFactory dff = new DiskFileItemFactory();// 创建该对象
	          dff.setRepository(tmpDir);// 指定上传文件的临时目录,可省略,默认为系统临时目录
	          dff.setSizeThreshold(1024000);// 指定在内存中缓存数据大小,单位为Byte,可省略,默认无限制,1024000 = 1024000/1024/1024 MB = 0.9MB 
	          ServletFileUpload sfu = new ServletFileUpload(dff);// 创建该对象
	          sfu.setFileSizeMax(10485760);// 指定单个上传文件的最大尺寸,可省略 默认无限制,10485760 = 10MB
	          sfu.setSizeMax(10485760*5);// 指定一次上传多个文件的总尺寸,可省略,默认无限制,10485760*5 = 50MB
	          FileItemIterator fii = sfu.getItemIterator(request);// 解析request
																	// 请求,并返回FileItemIterator集合
	          while(fii.hasNext()){
	            FileItemStream fis = fii.next();// 从集合中获得一个文件流
	            if(!fis.isFormField() && fis.getName().length()>0){// 过滤掉表单中非文件域
	                String fileName = fis.getName().substring(fis.getName().lastIndexOf("\\"));// 获得上传文件的文件名
	                System.out.println("正在处理文件" + fis.getName());
	                BufferedInputStream in = new BufferedInputStream(fis.openStream());// 获得文件输入流
	                BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir+fileName)));// 获得文件输出流
	                Streams.copy(in, out, true);// 开始把文件写到你指定的上传文件夹,
	                							//这个使用的是插件的util中的类,如果希望自己实现此功能,可以循环读取in流,按字节数组写入到out
	            }
	          }
	          response.getWriter().println("File upload successfully!!!");// 终于成功了,还不到你的上传文件中看看,你要的东西都到齐了吗
	        }
	    }catch(Exception e){
	        e.printStackTrace();
	    }
		
	/** ************************************************************* */	
	}

	public void init() throws ServletException {
		/*
		 * 对上传文件夹和临时文件夹进行初始化
		 */
		super.init();
		String tmpPath = "c:\\tmpdir";
		String savePath = "c:\\updir";
		tmpDir = new File(tmpPath);
		saveDir = new File(savePath);
		if (!tmpDir.isDirectory())
			tmpDir.mkdir();
		if (!saveDir.isDirectory())
			saveDir.mkdir();

	}

}

 

分享到:
评论

相关推荐

    JSP文件上传代码文件上传代码

    JSP文件上传代码JSP文件上传代码文件上传代码

    JSP文件上传 支持进度条显示.rar

    JSP文件上传 支持进度条显示,支持单个文件100M上传,JSP环境下的AJAX WEB上传程序,可一次上传多个文件,带进度条显示,上传过程中,若用户取消上传,则已经上传的文件均被删除。

    jsp文件上传下载jar包

    jsp文件上传下载jar包。jsp文件上传下载jar包

    JSP文件上传带进度条(很灵巧的方式)

    JSP文件上传带进度条(很灵巧的方式)JSP文件上传带进度条(很灵巧的方式)JSP文件上传带进度条(很灵巧的方式)JSP文件上传带进度条(很灵巧的方式)

    JSP文件上传功能(struts)

    JSP文件上传功能,用于实现Struts上传功能

    jsp文件上传源码

    jsp文件上传源码,解压之后,导入myeclipse中直接使用。

    jsp文件上传类 jsp文件上传类

    包括文件上传的几个类文件。 jsp文件上传类

    JSP文件上传进度条

    JSP文件上传带进度,开发过程中还感觉还蛮适用的,分享下

    jsp文件上传jar包

    jsp文件上传所需要的jar包。(凑齐100个字节)(凑齐100个字节)(凑齐100个字节)(凑齐100个字节)(凑齐100个字节)

    jsp 文件 上传 组件

    jsp 文件 上传 的..组件 大家可以下下去看看

    JSP文件上传插件(潇湘多文件上传).rar

    JSP文件上传插件(潇湘多文件上传),压缩包内包括了潇湘文件上传组件、实例、文档等。这是一款大家都比较喜欢用的JSP文件上传组件,支持图片和文件同时上传,可批量上传,支持多种上传自定义功能,扩展名、上传文件大...

    jsp文件上传所需common包

    jsp文件上传所需common包

    jsp文件上传包.zip

    jsp文件上传包,解决中文乱码问题,很好用,帮助者解决JSP文件上传乱码问题,可以放心的下载 。

    Jsp文件上传下载

    本示例向用户演示如何通过smartupload上传下载文件。此处用的是smartupload的新版本1.2,采用一种新的 方式来完成文件的上传。

    jsp文件上传下载

    这是 ,jsp文件上传下载 源代码。可以下载当做你学习的参考,本人建议不要直接拷贝代码。要看懂代码,这样才能吸收。

    jsp文件上传

    jsp文件上传,这个是通过commons-fileupload-1.2.2.jar、commons-io-2.4.jar,通过两个uploadJAR包实现了对文件的操作

    简单JSP文件上传源代码smartupload

    简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload

    jspsmartupload实现文件上传与下载

    1,只需要将文件夹upload拷在...3,有jsp文件上传与下载攻略是讲文件上传与下载的各种类中的函数含义的 4,主要包括完整的 jspsmartupload上传与下载,还有jspsmartupload的完整包,并且包括包中各种上传与下载的解释

    JSP无组件文件上传

    在网络上找到的,纯JSP实现的文件上传程序,支持多文件的上传,例子是多文件的上传,稍微修改就可以变成单文件的上传或者更多文件的上传,控制成需要扩展名的文件上传,指定大小的文件上传等。程序目前上传文件存储...

    jsp文件上传到数据库里例子下载

    jsp文件上传到数据库里例子下载,程序开发宝典

Global site tag (gtag.js) - Google Analytics