- 浏览: 7340725 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在项目中采用一個Ajax框架Ajax-Upload上传文件,想起曾经使用的FileUpload ,Cos,JspSmartUpload等上传框架加以整理.
Apache Commons FileUpload,可以在 http://jakarta.apache.org/commons/fileupload 找到。目前该项目的最新版本是 1.1.1,网上有大量的范例程序,不过后来用的时候发现大部分方法在新版本中都不推荐使用了,于是好好读了一回 API 和官方范例。
package com.vnvtrip;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
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.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
/**
*
* @author longgangbai
*
*/
public class FileUploadServlet extends HttpServlet {
private static String DEFAULT_COS_UPLOAD_DIR = "C://upload";
private static String DEFAULT_FILE_ENCODING_CHARSET = "UTF-8";
/**
* Constructor of the object.
*/
public FileUploadServlet() {
super();
}
/**
* Destruction of the servlet.
*/
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
/**
* 使用上传文件
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setCharacterEncoding(DEFAULT_FILE_ENCODING_CHARSET);
request.setCharacterEncoding(DEFAULT_FILE_ENCODING_CHARSET);
// 从 HTTP servlet 获取 fileupload 组件需要的内容
RequestContext requestContext = new ServletRequestContext(request);
// 判断是否包含 multipart 内容
if (ServletFileUpload.isMultipartContent(requestContext)) {
// 创建基于磁盘的文件工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置直接存储文件的极限大小,一旦超过则写入临时文件以节约内存。默认为 1024 字节
factory.setSizeThreshold(1024 * 1024);
// 创建上传处理器,可以处理从单个 HTML 上传的多个上传文件。
ServletFileUpload upload = new ServletFileUpload(factory);
// 最大允许上传的文件大小
upload.setSizeMax(1024 * 1024);
// 处理上传
List items = null;
try {
items = upload.parseRequest(requestContext);
// 由于提交了表单字段信息,需要进行循环区分。
for (int i = 0; i < items.size(); i++) {
FileItem fi = (FileItem) items.get(i);
// 如果不是表单内容,取出 multipart。
if (!fi.isFormField()) {
// 上传文件路径和文件、扩展名。
String sourcePath = fi.getName();
System.out.println("sourcepath" + sourcePath);
// 获取真实文件名
String fileName = sourcePath.substring(sourcePath
.lastIndexOf(File.separator) + 1);
out.println("fileName =" + fileName);
// 创建一个待写文件
File uploadedFile = new File(DEFAULT_COS_UPLOAD_DIR
+ File.separator + fileName);
// 写入
fi.write(uploadedFile);
out.println(fileName + " 上传成功。 ");
}
}
} catch (Exception e) {
out.println(" 上传失败,请检查上传文件大小是否超过1兆,并保证在上传时该文件没有被其他程序占用。 ");
out.println(" <br>原因: " + e.toString());
e.printStackTrace();
}
}
out.flush();
out.close();
}
/**
* Initialization of the servlet.
*
* @throws ServletException
*/
public void init() throws ServletException {
}
}
Web配置:
<?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>fileUpload</servlet-name>
<servlet-class>com.vnvtrip.FileUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>fileUpload</servlet-name>
<url-pattern>/fileUpload</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
htm页面中:
注意上传文件必须的发送的Post請求同时設置:enctype="multipart/form-data
<form action="./fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="上传文件" />
</form>
发表评论
-
[转]Jython初探
2014-01-07 11:19 2410转载自: ... -
ireport导出各种格式(pdf,excel,word,html,print)
2013-05-02 16:59 10052import java.io.IOException; ... -
【转】使用Atomikos Transactions Essentials实现多数据源JTA分布式事务
2013-04-03 12:11 6795Atomikos数据源配置方法有三种 Atomikos数 ... -
【转】Apache Thrift入门1-架构&介绍
2013-04-02 13:26 2042Thrift 是什么? Thrift ... -
【转】Thrift入门及Java实例演示
2013-04-02 12:47 2588目录: 概述 下载配置 基本概念 数据类型 ... -
【转】Thrift入门试用
2013-04-02 12:39 2185在新的项目中公司在平台内部系统间使用Thrift通讯,都没 ... -
【转】thrift的安装
2013-04-02 12:38 2094一、ubuntu下thrift的安装 1.下载源代码 ... -
GIS的学习(二十五)geoserver wms中的各种操作API详细讲解和使用
2012-09-10 17:42 9710官方geoserver中WMS服务中几种操作的API的详细说明 ... -
POI3.8组件研究(九)----让POI架起Java与Office之间的桥梁
2012-06-17 14:37 4333本文将阐述如何用POI来读取/写入完整的Excel文 ... -
POI3.8组件研究(八)--基于SXSSF (Streaming Usermodel API)的写文件
2012-06-17 14:17 14438在POI3.8中SXSSF仅仅支持excel2 ... -
POI3.8组件研究(七)--基于XSSF and SAX (Event API)事件的解析
2012-06-17 14:00 5369针对Event API事件解析仅仅支持excel97~ ... -
POI3.8组件研究(六)---struts2.0 视图层文件页面点击导出
2012-06-17 13:23 2420在struts2.0中点击导出按钮将信息导出为exce ... -
POI3.8组件研究(五)---excel文件内容抽取为文本
2012-06-15 09:15 4368在一个搜索引擎的使用中需要将各种文件转化为文本 ... -
POI3.8组件研究(四)--Event API (HSSF Only)事件的解析
2012-06-14 17:37 9065通过eventusermodel读取文件 ... -
POI3.8组件研究(二)---基于User API (HSSF and XSSF)解析Excel2003和2007文件
2012-06-14 09:46 3219在解析生成excel2003和 ... -
POI3.8组件研究(一)---基于User API (HSSF and XSSF)解析Excel2003和2007文件
2012-06-14 09:29 5356在以前的Excel解析时候,我们通常需要编写Ex ... -
EasyPOI的使用
2012-02-12 17:06 5322EasyPOI 的目的是封装了poi的写excel的API。 ... -
Commons-net FTPClient上传下载的封装
2011-08-25 08:30 11513在项目中使用到FTP功能,于是采用类似Spri ... -
Java将第三方jar文件打包到一个jar中的插件(fatjar)
2011-08-19 22:17 4340<!-- google_ad_section_star ... -
Apache的Commons-configuration自动加载特性
2011-07-24 19:04 4085在一些项目可能配置文件经常变化,配置文件的类型可能 ...
相关推荐
在Web开发中,FileUpload控件是ASP.NET提供的一种方便用户上传文件的组件。本主题将详细探讨如何使用C#的FileUpload控件实现上传任意大小的文件,并结合`Web.Config`配置和相关代码进行说明。 首先,我们要理解...
在Web应用开发中,文件上传功能是常见的用户交互需求,比如让用户上传图片、文档等。本篇将详细介绍如何创建一个C#通用文件上传类,以便处理页面上所有FileUpload控件中的文件。 首先,我们需要理解FileUpload控件...
本篇文章将详细介绍如何使用C#编写一个通用的文件上传类,专门处理FileUpload控件的文件上传。 首先,FileUpload控件是ASP.NET提供的一种用于处理文件上传的服务器控件。在HTML表单中,当用户选择文件并提交表单时...
在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload和Smart Upload是两个常用的文件上传组件。这里我们将深入探讨这两个库以及如何在实际项目中使用它们。 首先,Apache Commons FileUpload是...
在Web开发中,文件上传是不可或缺的功能之一,无论是用户上传头像、提交文档还是分享多媒体内容,都需要处理文件上传操作。以下将详细讲解几种常见的文件上传方法,包括JSP、AJAX、Spring、Struts、Smart Upload、...
在Struts2中,文件上传功能是通过第三方库来实现的,其中最常用的就是Apache Commons FileUpload和Apache Commons IO。这里提到的"commons-fileupload-1.2.1.jar"和"commons-io-1.4.jar"就是这两个库的特定版本。 *...
在Webdynpro应用程序中,处理文件上传和下载是非常常见的需求之一。本文档详细介绍了如何使用`FileUpload`和`FileDownload`控件来实现这些功能。通过实际操作步骤与代码示例,帮助读者更好地理解和掌握这一知识点。 ...
1. **文件上传**:在Web应用中,用户可能需要上传图片、文档或视频等文件到服务器。文件上传通常涉及HTML表单、JavaScript前端处理和服务器端的接收与存储。"fileupload"可能提供了一个轻量级的框架,简化了这一过程...
FileUpload 控件是 ASP.NET 中一个常用的控件,用于上传文件到服务器端。在 Web 开发中,文件上传是一个非常常见的需求,例如上传头像、上传附件等。FileUpload 控件提供了一个简单的方式来上传文件,并且可以对上传...
【标题】"仿163网盘无刷新文件上传 for Jsp_fileupload_jsp" 提供的是一个基于JSP的文件上传解决方案,模仿了163网盘的无刷新上传功能。这种技术允许用户在不刷新整个网页的情况下上传文件,提高了用户体验。 在Web...
内含文档说明和demo演示!~ 用struts的commons-fileUpload.jar实现文件上传,所以文件都可以,并另加图片预览功能!~ 采用简单常用jsp+servlet实现,同样对使用struts实现上传进行了说明~
2. **Commons FileUpload库**:Apache Commons FileUpload是Java中处理文件上传的常用库,它提供了方便的API来解析`multipart/form-data`请求。我们需要在项目中引入这个库,通常通过Maven或Gradle添加依赖。 3. **...
"fileupload上传"这个标题涉及到的是利用FileUpload组件在Tomcat服务器、MyEclipse集成开发环境以及Java Development Kit (JDK) 的环境下实现文件上传的过程。 【描述】:通过"fileupload在tomcat+MyEclipse+jdk...
在Java Web开发中,"FileUpload上传第三方JAR包"是一个常见的需求,特别是在构建自定义应用或集成外部库时。这个过程涉及到多个知识点,包括文件上传、类路径管理以及依赖注入。下面将详细阐述这些关键点。 1. 文件...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
在Java编程语言中,文件上传是一项常见的功能,广泛应用于各种Web应用中,如社交媒体平台、云存储服务等。实现基于Java的文件上传涉及到多个技术点,包括Servlet、HTTP协议、多部分请求(Multipart Request)以及...
在Java Web开发中,文件上传和下载是常见的功能需求,主要涉及到Servlet技术。Servlet是Java Servlet API提供的一个接口,用于扩展服务器的功能,处理HTTP请求。在这个"javaweb文件上传与下载"的示例中,我们将探讨...
在文件上传方面,它提供了一个名为`FileUpload`的组件,允许用户通过拖放或选择文件的方式方便地上传文件。`primefaces-6.2.jar`包含这个组件的实现,支持多文件上传、进度条显示、文件大小限制等功能,并且与不同的...
在.NET开发过程中,`FileUpload`控件是一个常用的组件,用于处理用户在Web表单中上传文件的功能。当用户选择一个文件并提交表单时,`FileUpload`控件的`HasFile`属性通常会返回`true`,表示有文件被选中并且可以上传...