WebWork上传
1.编写前台页面
在页面添加如下选择文件标签
2.修改后台action
在相应的action中添加下面三个变量并添加相应的getter方法,其中uploadFiles为前台页面的文件标签name,用来接收上传的文件.uploadFilesFileName为文件名,uploadFilesContentType为文件类型,如xls文件的contentType为application/excel.
注意:
获得文件名的属性变量名称必须为接收文件属性名+FilesName,获得文件类型的属性变量名称必须为接收文件属性名+ContentType
3.配置xwork.xml文件
在xwork.xml文件中添加如下代码
在相应的action配置中添加下面的代码
4.在action编写上传方法
5.在web.xml中配置文件类型对应的contentType
如下图:
Webwork下载
1.编写前台页面
在下载页面添加如下链接
2.编写后台方法
在相应的action中添加下载方法,代码如下:
具体思路为将文件从服务器读入内存,之后写入response中推到前台
本人在编写过程中遇到过的问题:
1.文件在浏览器打开
经检查是因为没有在web.xml中配置mime-mapping
2.无法获得文件的文件名及contentType
原因为属性名称不对
3.配置完成后启动Tomcat报错
检查过后,我发现自己在xwork.xml中少配置了一行
无论是否在其他interceptor-stack中配置过,在upload中都要配置这一行ref.
4.在下载过程中遇到过的问题,因为我自己安装了迅雷,所以并没有注意到,放在同事
的代码中测试的时候,因为同事没有安装任何下载工具,使用的是IE自带的下载方法,出现了无法找到站点的错误.仔细检查后发现原因是那个下载链接我调用了
onclick方法,在onclick方法中我使用了window.open方法来打开另外的页面之后再下载文件,造成IE出错.建议大家直接使用href指向下载的方法就好.