`

java 上传小实例

阅读更多
前端jsp
<html>
	<head>
		<meta http-equiv="Content-Type" contect="text/html;charset=utf-8">
	</head>
	<body>
		<form action="../fileupload/upload" method="post"
		enctype="multipart/form-data">
			<!-- file对应的input必须有name属性,否则不能上传 -->
			<input type="file" name="file"/>
			<input type="submit" value="submit" />
		</form>
	</body>
</html>


后台servlet
package org.xxm;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

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

import dareway.org.apache.commons.fileupload.FileItem;
import dareway.org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
import dareway.org.apache.commons.fileupload.disk.DiskFileItemFactory;
import dareway.org.apache.commons.fileupload.servlet.ServletFileUpload;
import dareway.org.apache.commons.fileupload.util.Streams;

/**
 * @author xuxiaoming
 * 2009-03-19
 * 以tomcat6.0为服务器
 */
public class UploadFileServlet extends HttpServlet {
	public void doGet(HttpServletRequest req,
			HttpServletResponse res) {
		return;
	}
	
	public void doPost(HttpServletRequest req,
			HttpServletResponse res) throws IOException {
		/**
		 * form中的enctype必须是multipart/...
		 * 组件提供方法检测form表单的enctype属性
		 * 在isMultipartContent方法中同时检测了是否是post提交
		 * 如果不是post提交则返回false
		 */
		if(ServletFileUpload.isMultipartContent(req)) {
			req.setCharacterEncoding("utf-8");
			DiskFileItemFactory factory = new DiskFileItemFactory();
			/**
			 * 临时文件存储路径要真实存在
			 */
			factory.setRepository(new File("../webapps/fileupload/tmp"));
			//内存最大占用
			factory.setSizeThreshold(1024000);
			ServletFileUpload sfu = new ServletFileUpload(factory);
			//单个文件最大值byte
			sfu.setFileSizeMax(102400000);
			//所有上传文件的总和最大值byte
			sfu.setSizeMax(204800000);
			List items = null;
			try {
				items = sfu.parseRequest(req);
			} catch (SizeLimitExceededException e) {
				System.out.println("size limit exception!");
			} catch(Exception e) {
				e.printStackTrace();
			}
			
			Iterator iter = items==null?null:items.iterator();
			while(iter != null && iter.hasNext()) {
				FileItem item = (FileItem)iter.next();
				//简单的表单域
				if(item.isFormField()) {
					System.out.print("form field:");
					System.out.print(item.getFieldName() + "  ");
					System.out.print(item.getString());
				} 
				//文件域
				else if(!item.isFormField()) {
					System.out.println("client name:" + item.getName());
					String fileName = item.getName().substring(item.getName().lastIndexOf("\\"));
					BufferedInputStream in = new BufferedInputStream(item.getInputStream());
					//文件存储在工程的upload目录下
					BufferedOutputStream out = new BufferedOutputStream(
							new FileOutputStream(new File("../webapps/fileupload/upload/" + fileName)));
					Streams.copy(in, out, true);
				}
			}
		} else {
			System.out.println("enctype error!");
		}
	}
}

分享到:
评论

相关推荐

    java上传下载实例

    总的来说,这个Java上传下载实例是一个很好的学习资源,它涵盖了Web开发中的核心技能,包括文件I/O、HTTP协议、MVC框架的使用以及安全策略等。通过这个实例,开发者能够深化对Web服务端编程的理解,并提升实际项目...

    java文件上传实例

    在这个“java文件上传实例”中,我们将深入探讨如何实现这一功能,并结合拦截器来增强上传的安全性和可控性。文件上传的流程通常包括前端页面的构建、后端接口的设计以及中间件的处理,而拦截器则可以用来进行权限...

    java上传文件实例

    &lt;%@ page language="java" import="java.util.*" pageEncoding="GBK"%&gt; ;charset=gb2312" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,...

    flash java 上传头像实例

    在IT行业中,开发一个“Flash Java上传头像实例”涉及到前端与后端的协同工作,主要利用Adobe Flash作为用户界面,结合Java服务器端技术来处理文件上传。这个实例旨在为用户提供一个简单易用的头像更换功能。下面将...

    Java简单上传图片实例

    总结来说,这个Java图片上传实例主要涉及以下知识点: 1. Struts框架的Action配置和执行机制。 2. 使用`File`对象接收上传的文件。 3. 处理文件上传的业务逻辑,包括文件的保存和异常处理。 4. HTML表单的创建,...

    文件上传实例-JAVA

    以下是关于这个"文件上传实例-JAVA"的详细解释和相关知识点。 1. **文件上传的基本原理**: 文件上传通常涉及客户端(浏览器)与服务器之间的交互。用户在Web表单中选择文件,表单提交后,文件数据被封装到HTTP...

    Flex+Java、PHP 批量上传实例文档

    Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、...

    Java上传下载实例

    这个"Java上传下载实例"提供了一个基础模板,适用于初学者学习如何在JSP(Java Server Pages)环境中实现这些功能。 首先,我们需要理解上传和下载的基本概念。上传通常指的是用户通过网页将本地文件发送到服务器的...

    Java 批量上传文件实例

    综上所述,Java批量上传文件实例涉及到的关键技术包括:HTML5多文件选择、Multipart HTTP请求、Commons-FileUpload库的使用以及Servlet的文件处理。在实际开发中,还需要结合具体业务需求,进行安全性和性能优化。

    通过java向fastdfs上传文件实例

    本文将详细讲解如何通过Java开发语言来实现向FastDFS系统的文件上传功能。 FastDFS是一个高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决...

    Java 文件上传的实例详解

    "Java 文件上传的实例详解" Java 文件上传是指在 Java 应用程序中实现文件上传功能的过程。文件上传是 Web 应用程序中非常常见的功能,例如上传头像、上传附件、上传图片等。Java 文件上传可以使用多种方法实现,...

    上传图片实例 JAVA

    这个“上传图片实例JAVA”的主题主要涵盖了如何在Java环境中实现图片的上传、处理和存储。下面将详细介绍这个过程,并提供相关的知识点。 首先,我们需要一个表单(HTML)来让用户选择并提交图片文件。表单应包含一...

    Java文件上传下载实例(含详细注释)

    以下是关于"Java文件上传下载实例(含详细注释)"的详细知识点解析: 1. **Servlet与JSP**: - Java文件上传通常涉及到Servlet技术,Servlet是Java为HTTP协议提供的一种服务端接口,用于处理客户端(浏览器)的请求...

    Java上传视频实例代码

    Java上传视频实例代码 Java上传视频实例代码是使用Java语言编写的视频上传功能实例代码,代码分为页面前台和后台两个部分。前台代码使用HTML、CSS和JavaScript编写,负责视频文件的上传和表单提交;后台代码使用...

    flex+java文件上传完整实例

    本示例“flex+java文件上传完整实例”提供了一个完善的解决方案,它结合了Adobe Flex前端技术和Java后端技术,实现了用户友好的文件上传功能。Flex是一种开源的RIA(富互联网应用)开发框架,而Java则提供了强大的...

    Java 文件上传实例

    本文将深入探讨Java实现文件上传的基本步骤、关键技术和相关工具,结合提供的资源,我们将一起学习一个实际的Java文件上传实例。 首先,我们要理解文件上传的基本流程。在Web应用中,文件上传通常涉及客户端(通常...

    Java文件上传实例

    本实例将深入探讨如何在Java环境中实现这一功能。 首先,我们需要了解HTTP协议中的multipart/form-data编码类型,这是在Web表单中上传文件的标准方式。当用户选择一个或多个文件并提交表单时,这些文件将以二进制...

    java文件的上传和下载完整实例

    java文件的上传和下载完整实例,前断时间一直对上传和下载不是很明白,然后这段时间本人亲自整理资料并对上传和下载写了一个完整的项目,项目是maven+springmvc实现的,本人亲自测试过决对可以用,如果下载下来不能...

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

Global site tag (gtag.js) - Google Analytics