`
namezhou
  • 浏览: 158740 次
  • 性别: 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文件上传 支持进度条显示.rar

    "JSP文件上传 支持进度条显示"这个项目是针对JSP环境设计的一个AJAX Web上传程序,它允许用户上传大文件(如单个文件100M),并具有文件上传进度条的可视化功能。以下将详细解析这个项目的知识点: 1. **JSP(Java...

    jsp文件上传源码

    综上所述,"jsp文件上传源码"提供了一个基础的JSP文件上传教程,通过这个项目,开发者可以学习到如何在Java Web环境中处理文件上传,理解`multipart/form-data`编码的工作原理,以及如何使用Servlet和Apache Commons...

    Jsp文件上传下载

    总结来说,JSP文件上传下载是通过SmartUpload库实现的,它简化了文件操作的复杂性,使得开发者能更专注于业务逻辑。通过理解和实践SmartUpload的用法,你将能够为你的Web应用添加这一关键功能。同时,理解文件上传...

    jsp文件上传下载jar包

    以下是关于JSP文件上传下载以及所用到的JAR包的详细解释: 1. 文件上传: 在JSP中处理文件上传,我们需要使用Apache Commons FileUpload库,具体为`commons-fileupload-1.2.jar`。这个库提供了处理HTTP多部分请求...

    JSP文件上传进度条

    因此,引入“JSP文件上传进度条”技术可以显著改善这种情况,为用户提供实时的上传进度,增强交互体验。这个技术主要涉及到前端与后端的协同工作,下面我们将详细探讨这一主题。 首先,我们需要理解JSP(JavaServer...

    jsp文件上传jar包

    总结来说,"jsp文件上传jar包"涉及到的主要知识点包括:JSP文件上传的原理、Servlet API的使用、Apache Commons FileUpload库的作用及使用方法,以及如何在JSP页面和服务器端处理文件上传请求。正确引入和使用这些...

    关于JSP文件上传下载源代码

    这个项目标题“关于JSP文件上传下载源代码”表明我们将讨论如何在JSP环境中实现文件上传和下载的功能。 首先,我们需要理解JSP文件上传的基本流程。通常,文件上传是通过HTML表单完成的,表单中包含一个`...

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

    以上是关于JSP文件上传的基本概念和实现步骤。在实际开发中,应结合具体需求,如文件存储策略、权限控制等,进行更深入的设计和实现。同时,随着技术的发展,现代Web框架如Spring Boot提供了更高级别的抽象,简化了...

    jsp文件上传下载带删除功能

    【标题】"jsp文件上传下载带删除功能"指的是在Java Web开发中,使用JSP(JavaServer Pages)技术实现的一项基础功能,它涵盖了文件的上传、下载以及删除操作。这样的功能通常用于用户交互,比如允许用户上传个人资料...

    jsp文件上传,解决中文乱码

    在这个场景下,我们关注的是`JSP文件上传`,这是一个常见的功能,用户可以通过网页上传文件到服务器,例如图片、文档等。然而,当处理中文文件名时,可能会出现乱码问题,这主要是由于字符编码不一致导致的。接下来...

    jsp文件上传下载

    【jsp文件上传下载】是一个常见的Web开发功能,用于在服务器端处理用户上传的文件并提供文件下载服务。在Java Web环境中,JSP(JavaServer Pages)是常用的动态网页技术,结合Servlet可以实现复杂的文件交互操作。 ...

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

    在JSP中实现文件上传是一项常见的任务,尤其是在构建Web应用程序时。JSP(JavaServer Pages)是一种基于Java的服务器端脚本语言,用于生成动态网页内容。以下将详细讲解如何在JSP中实现文件上传,并解决如何去除表单...

    jsp 文件 上传 组件

    总结,JSP文件上传组件通常涉及JSP页面设计、Servlet处理以及第三方库如Apache Commons FileUpload的使用。理解这些知识点,开发者就能构建出健壮且安全的文件上传功能。在实际应用中,务必注意文件上传的安全性,...

    免费的 JSP多文件上传的组件.ZIP_JSP上传_jsp_jsp 上传_jsp多文件上传_jsp文件上传

    标签进一步强调了关键词“jsp上传”、“jsp多文件上传”和“jsp文件上传”,这些都与文件上传的特定场景有关。在JSP中处理多文件上传意味着组件需要能够处理一个请求中包含的多个文件,并且可能支持并发上传,以提高...

    jsp文件上传功能实现

    总结来说,实现JSP文件上传功能的关键在于理解HTTP协议中文件上传的数据格式,正确设置HTML表单,以及在服务器端正确地解析和处理上传的数据。通过上述步骤,我们可以实现一个基本的文件上传功能,但实际应用中可能...

    多种jsp文件上传实例

    本文将详细解析"多种jsp文件上传实例"中的知识点,涵盖单个文件上传、多个文件上传、大文件上传等核心概念。 1. **单个文件上传**: 单个文件上传通常通过HTML表单实现,包含一个`<input type="file">`元素。在JSP...

    JSP文件上传示例代码

    综上所述,JSP文件上传涉及HTTP协议、Multipart/form-data编码、Servlet请求处理以及文件操作等多个方面。在实际开发中,通常会结合Servlet和JSP,或者使用如Apache Commons FileUpload等库来简化文件上传的实现。...

    jsp文件上传所需common包

    Apache Commons项目提供了一系列实用工具类库,极大地简化了这一过程,其中“jsp文件上传所需common包”就是针对这一需求的重要组件。这个包通常指的是Apache Commons FileUpload库和Apache Commons IO库。 Apache ...

    jsp文件上传

    "jsp文件上传"是一个常见的功能,它涉及到客户端与服务器之间的数据交互,通常用于用户向网站服务器上传图片、文档等文件。本知识点将详细解释如何使用Apache Commons FileUpload库来实现这一功能。 Apache Commons...

    JSP文件上传视频和源代码

    一、JSP文件上传基础 在JSP中进行文件上传,通常我们会用到Servlet和Apache的Commons FileUpload库。Servlet是Java Web应用中的服务器端组件,用于接收和处理客户端请求。Commons FileUpload库则是Apache提供的一个...

Global site tag (gtag.js) - Google Analytics