- 浏览: 654057 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
文件上传几乎是每个项目实现的一个必须的模块。
上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到。将制作好的网页、文字、图片等发布到互联网上去,以便让其他人浏览、欣赏。这一过程称为上传。
JAVA实现文件上传的几个组件:
1 SmartUpload 用的最多的一个组件,已经不再更新了,可以实现上传和下载
2 FileUpload Apache实现的文件上传组件,功能齐备
3 J2KUpload java2000实现的文件上传组件,全部使用内存,适合多个不超过10M的小文件
下面具体说说FileUpload Apache实现的文件上传组件。
1、/** 按copy方式上传 */
Java代码
public String uploadFile(){
/**保存的具体路径*/
String savepath = getSavePath();
/**根据保存的路径创建file对象*/
File file = new File(savepath);
if(!file.exists()){
/**创建此文件对象路径*/
file.mkdirs();
}
try {
/**使用的是:org.apache.commons.io.FileUtils FileUtils*/
FileUtils.copyFile(pic, new File(file,getPicFileName()));
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
}
备注:
1、getSavePath()方法中,ServletActionContext()。getServletContext()。getRealPath
(savePath+"\\"+getPicFileName()); ,这个主要是一个文件的实际路径
2、我个人认为这种方式是简单易用的。按copy方式上传使用的是Apache公司的
org.apache.commons.io.FileUtils包里的FileUtils.java.
2、/** 按字节方式上传 */
Java代码
public String uploadFile(){
/** 文件的写操作 */
FileInputStream fis = null;
FileOutputStream fos = null;
/** 保存的路径 */
String savepath = getSavePath();
/** 根据保存的路径创建file对象 */
File file = new File(savepath);
/** file对象是否存在
*/
if (!file.exists()) {
/** 创建此文件对象路径 */
file.mkdirs();
}
try {
/** 创建输入流 */
fis = new FileInputStream(pic);
/** 输出流 更据文件的路径+文件名称创建文件对象 */
fos = new FileOutputStream(file + "//" + getPicFileName());
/** 读取字节
*/
byte b[] = new byte[1024];
int n = 0;
/** 读取操作
*/
while ((n = fis.read(b)) != -1) {
/** 写操作
*/
fos.write(b, 0, n);
}
/** 关闭操作 */
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
3、/** 按字符方式上传 即“三层管道” */
Java代码
public String uploadFile(){
/** 文件的写操作 */
BufferedReader br =null;
BufferedWriter bw = null;
/** 保存的路径 */
String savepath = getSavePath();
/** 根据保存的路径创建file对象
*/
File file = new File(savepath);
/** file对象是否存在 */
if (!file.exists()) {
/** 创建此文件对象路径 */
file.mkdirs();
}
try {
/**
创建一个BufferedReader 对象*/
br = new BufferedReader(new InputStreamReader(new FileInputStream
(pic)));
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream
(file + "//" + getPicFileName())));
// 读取字节
char b[] = new char[1024];
int n = 0;
// 读取操作
while ((n = br.read(b)) != -1) {
// 写操作
bw.write(b, 0, n);
}
// 关闭操作
if (br != null) {
br.close();
}
if (bw != null) {
bw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
备注:
第二种上传方式没有第三种上传方式效率高。
建议:
最好用第一种方式上传,次之使用第三种方式上传,最后再使用第二种方式上传。
发表评论
-
基于注解的SpringMVC简单介绍
2015-04-03 11:58 590SpringMVC是一个基于DispatcherServle ... -
Hibernate与 MyBatis的比较
2015-03-20 00:34 635mybatis是半自动的,hibernate是全自动的,就是 ... -
spring学习,理解控制反转和spring在项目中可以带来的好处
2014-08-18 15:32 2107spring三种实例化Bean的 ... -
springMVC详细介绍(备查)
2014-08-18 15:19 789myeclipse 构建springMvc mav ... -
struts2拦截器使用(用户session失效后的统一页面指向)
2012-01-12 14:59 977用户登录之后session我们设置一定的时间失效,失效后 ... -
struts2防页面刷新重复提交
2012-01-12 14:41 891struts2防页面刷新重复提 ... -
struts2异常处理方法
2011-12-29 10:07 1868因为在Action的execute方法 ... -
struts2中文乱码的问题
2011-06-16 14:05 811struts2中存在中文乱码的问题,这是大家都知道的,经过这次 ... -
Struts2中action获取request、response、session的方式
2011-01-21 16:58 1420struts2的request、response、sessio ... -
hibernate的二级缓存
2010-12-10 13:21 957很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇 ... -
Struts 2 Actions介绍
2010-07-22 17:11 979当客户端请求与action的name相匹配时,框架会使用str ... -
Struts.xml关键的配置
2010-07-22 17:10 910包含配置 默认的情况下,Struts2将自动加载放在WEB-I ... -
Struts2中struts.xml的Action配置详解
2010-07-22 17:00 787使用package可以将逻辑上相关的一组Action,Re ... -
Struts2中struts.xml的Action配置详解
2010-07-22 16:58 1227使用package可以将逻辑上相关的一组Action,Resu ... -
Struts2:处理一个form多个submit
2010-07-22 16:57 845了完成不同的工作,一个 HTML form 标签中可能有两个或 ... -
struts2 action 配置 action应用原理
2010-07-22 16:55 996Action 的配置是 Struts2 框架的一个基础工作单元 ... -
struts2动态action的实现
2010-07-22 16:45 991是管理者的用户登录的时候,执行完了认证需要的loginacti ... -
struts2的验证
2010-07-21 11:42 756struts2的验证和struts1的验证相对来说简单很多,注 ... -
Struts2教程4:使用validate方法验证数据
2010-07-21 11:40 1392在《Struts2教程4:使用validate方法验证数据》中 ... -
Struts、Hibernate、Spring经典面试题
2010-07-19 16:10 1245Hibernate工作原理及为什 ...
相关推荐
Struts2是一个流行的Java web框架,它为开发者提供了一种结构化的方式来构建MVC(Model-View-Controller)应用程序。在Struts2中,文件上传是常见的功能,用于允许用户在网页上上传文件到服务器。这个压缩包包含了...
Struts2提供了两种主要的文件上传方式:单文件上传和多文件上传。下面将详细介绍这两种方法及其相关知识点。 一、单文件上传 1. **配置Struts2核心过滤器**:首先,需要在web.xml中配置`struts2-convention-plugin...
4. **文件解析**:Struts2支持两种方式处理文件上传:原生的Servlet API和Apache Commons FileUpload库。后者更为常用,因为它提供了更丰富的功能,如处理大文件分块上传、内存和磁盘存储策略等。在Action类中,你...
Struts2本身并不包含一个内置的请求解析器来处理文件上传。相反,它依赖于第三方库,如Jakarta和Commons-FileUpload,来解析HTTP请求中的文件数据。Struts2对这些库进行了封装,使得文件上传的代码更加简洁,同时...
4. **文件下载**: Struts2提供了一种简单的方式处理文件下载。在Action类中,你可以创建一个方法返回文件流。使用`response.setHeader()`设置HTTP响应头,如`Content-Disposition`来指定文件名,以及`Content-Type`...
Struts2是一个流行的Java Web框架,它为开发者提供了一种优雅的方式来构建可维护、可扩展且结构清晰的Web应用程序。在Struts2中,文件上传是常见的功能之一,尤其是在处理用户提交表单时,比如上传图片、文档等。...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...
在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org....
在处理文件上传时,Struts2会使用`Commons FileUpload`库,这个库提供了解析多部分HTTP请求的能力。每个上传的文件会被封装成`FileItem`对象,我们可以遍历这些对象,对每个文件进行处理。例如,将文件保存到服务器...
2. **添加Struts2插件**:Struts2的文件上传功能依赖于`struts2-convention-plugin`和`struts2-core`等库。在`struts.xml`配置文件中,需要启用Multipart解析器,例如添加`<constant name="struts.multipart.parser...
本篇文章将全面解析Struts2.0中的文件上传和下载流程。 ### 文件上传 文件上传的核心在于`multipart/form-data`编码类型,这是HTML表单用于上传文件的必需属性。在示例中,我们看到一个简单的Struts2表单,其中...
在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...
Struts2文件上传程序是一个典型的企业级Web应用开发中的功能,它允许用户通过网页将本地文件上传到服务器。Struts2作为一款强大的MVC(Model-View-Controller)框架,提供了丰富的功能支持,包括文件上传。这个示例...
Struts2是一个强大的Java web应用程序框架,它提供了一种组织和构建MVC(模型-视图-控制器)架构的方式。在Struts2中,文件上传功能是常见的需求,特别是在处理用户提交表单时,比如上传图片、文档等。本文将详细...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...
在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...
Struts2框架利用了Servlet API,但提供了一种更抽象和灵活的方式来处理文件上传。它使用Interceptor(拦截器)机制,其中`FileUploadInterceptor`负责处理上传的文件。在Struts2配置中,你需要添加`params`和`...
2. Struts2中的文件上传:Struts2提供了更简洁的文件上传方式。在JSP页面中,可以使用`<s:file>`标签来创建文件选择控件。在Action类中,使用`@SkipValidation`注解标记文件上传方法,然后定义对应的`java.io.File`...