java struts 文件上传与文件下载
今天和大家继续分享java struts 文件控制上传和下载。
- 文件上传:指将本地文件上传到服务器指定目录下。在struts框架中,文件上传需要用到<s:file>标签,该标签是一个表单标签,要放在<s:form>标签中。现在看一个文件上传的实例,进而讲解各个标签的含义及其用法。
- 创建项目 把lib标签以及web.xml配置好,在之前的博客已经分享。
- 在src目录下创建包com.action,在该包下创建java文件
FileUploadAction.java代码如下:
(3).在src目录下创建struts.xml文件
在文件中配置了action文件过滤拦截器。该拦截器在struts-default中配置过,名称为fileUpload。它的两个参数maximumSize和allowedType。maximumSize参数指定允许上传的文件大小。allowedType参数指定允许上传的文件类型,多个文件类型之间用逗号隔开。
(3)在webContent目录下创建index.jsp文件,代码如下:
index.jsp是入口文件,method属性一般指定为post方法
(5).success.jsp文件
运行结果返回文件的文件名和文件类型
(6)运行结果:
提交前
选择文件提交
提交后
2.文件下载:将文件从服务器上下载到本地机器上,该过程是一个GET过程。直接看代码
(1).lib下的jar包和web.xml配置。
(2)在src下创建包com.action,在该包下创建DownloadAction.java文件,代码如下:
(3)在src目录下创建struts.xml
contenType:该属性指定下载文件的文件类型。
ContentDisposition:该属性指定下载的文件名。
inputName:该属性制定下载文件的入口输入流方法。
bufferSize:该属性指定下载文件时的缓冲大小。
还有两个属性:
allowChange:该属性指定是否缓冲,默认为true。
contentLength:该属性指定下载文件的流长度。
(4)index.jsp入口文件
(5)运行结果
点击前
点击后
在成功运行前,遇到了一个小麻烦,当点击download file时出现错误
这是什么原因呢,结合自身的和网上的我总结了一下
a.你要下载的文件不存在。
b.你要下载的文件存在,但你想下载的文件名乱码了。
c.直接路径就有问题。
但很有可能的是:如果是用的是eclipse,代码中需要在WebContent下建文件夹download,在文件夹下有一张Desert.png的图片;而在myeclipse下,需要在WebRoot下建文件夹。
图:
谢谢大家,分享就到这了,期待分享ajax的使用。