香港到广州进口时效:Struts2下多文件的上传与下载

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 22:01:17

目录

 

关键词... 1

写在前面... 1

需求... 1

环境... 2

目录结构... 3

重要文件的看点... 3

web.xml. 3

struts.xml. 4

UploadAction. 5

DownloadAction. 8

UploadConfigurationRead. 10

工程结果截图... 13

提供原代码下载... 14

 

关键词

 

多文件 上传 下载 随意文件 java Struts2 单例 配置 动态读取 李顺利

 

写在前面

 

在网络上,对于Java处理文件上传和下载的技术比较多,而Struts作为一款优秀的框架也提供了非常方便的文件上传和下载,而网上的一些例程都非常的不全面,概括来:

1)   文件上传比较多,多文件上传少一点

2)   文件下载很少的,看似简单,实则不然

3)   文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子

最近也在研究一下文件的上传和下载,在整合网上、浪曦风中叶老师和自己的学习的思想,写了这个工程,提供给大家参考,所以的代码终在IE、FireFox、Chrome测试通过。

 

需求

 

1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定)

2.能够对上传路径进行配置文件(upload.properties)指定,使用了一些类似单例模式的静态代码块

3.对配置文件中的路径可以进行动态读取(不重启服务器)

4.Struts2进行下载处理,能对上传的所有文件进行下载(多个)

5.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称

(人性化,通过UploadFiles处理)

 

环境

 

最新的Struts2:struts-2.1.8、MyEclipse、Tomcat、IE、FireFox、Chrome

 

目录结构

 

 

 

重要文件的看点

 

web.xml

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

在web.xml中使用了最新的Struts2的中央处理器类org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,而不再是以前的org.apache.struts2.dispatcher.FilterDispatcher,FilterDispatcher在新版本Struts2中已经标注为过时了,请大家尽量使用最新的filter。

 

struts.xml

"1.0" encoding="UTF-8" ?>

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

"struts.i18n.encoding" value="utf8" />

"file" namespace="/" extends="struts-default">

"showUpload">

/upload.jsp

"upload" class="org.usc.file.UploadAction">

"input">/upload.jsp

"success">/download.jsp

"fileUpload">

"defaultStack">

 

"download" class="org.usc.file.DownloadAction">

"success" type="stream">

"contentDisposition">attachment;filename="${fileName}"

"inputName">downloadFile

 

就是文件上传和下载的一些Struts2配置,注意上传的时候,请引入

"defaultStack">

下载的配置中注意:"inputName">downloadFile

其他的配置解释网上很多,不懂的可以先google学习一下。

 

UploadAction

 

在此文件中请注意文件数组的使用,因为是多文件(代码请查看提供下载的pdf文件)

 

DownloadAction

 

在此文件中要注意public InputStream getDownloadFile()的名称在Struts2配置文件配置,返回的是一个InputStream类型的对象。(代码请查看提供下载的pdf文件)

 

UploadConfigurationRead

 

动态读取配置文件,借鉴网上的代码(代码请查看提供下载的pdf文件)

 

工程结果截图

 

在IE(遨游)中多文件上传

 

在IE(遨游)中多文件下载(迅雷下载有点问题,中文名称有时不正确)

 

在Firefox中多文件上传

 

在Firefox中多文件下载

 

在Chrome中多文件上传

 

在Chrome中多文件下载

 

服务器中所以文件

 

提供原代码下载

 

FileUpLoadAndDownLoad.rar

Struts2下多文件的上传与下载.pdf