本文实例讲述了java中struts2实现文件上传下载功能实现方法。分享给大家供大家参考。具体分析如下:
1.文件上传
首先是jsp页面的代码
在jsp页面中定义一个上传标签
附件:然后是BaseAction中定义的相关属性其它的就省略了(也可定义在自己的Action,换下访问修饰符即可)
/**
*Action基类
**/
public class BaseAction extends ActionSupport {
protected List upload;
protected List uploadContentType; //文件类型
protected List uploadFileName; //文件名
protected String savePath; //保存路径
}
然后是Action中的一个上传方法,代码如下:
/**
* 8.上传附件
* @param upload
*/
public void uploadAccess(List upload){
try {
if (null != upload) {
for (int i = 0; i < upload.size(); i++) {
String path = getSavePath() + ""+ getUploadFileName().get(i);
System.out.println(path);
item.setAccessory(getUploadFileName().get(i));
FileOutputStream fos = new FileOutputStream(path);
FileInputStream fis = new FileInputStream(getUpload().get(i));
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fis.close();
fos.close();
}
}
} catch (Exception e) {
logger.error("上传附件错误。", e);
}
}
接着是我的struts2.xml文件
e:upload
application/octet-stream,image/pjpeg,image/bmp,image/jpg,image/png,image/gif,image/jpeg,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel
8000000
/WEB-INF/jsp/page_item/updItem_rd.jsp
/WEB-INF/jsp/page_item/listItem_rd.jsp
/WEB-INF/jsp/page_item/pushItem_rd.jsp
savePath为保存路径,fileUpload.allowedTypes 用来限制上传文件类型 fileUpload.maximumSize 文件大小限制
2.文件下载
首先是页面中的下载链接
附件: