struts的上传下载
文件上传
添加jar包
commons-io-1.3.2.jar
commons-fileupload-1.2.1.jar
前台页面 form表单 method值为post 添加"enctype"属性,值为"multipart/form-data"
<form action="uploadFile" enctype="multipart/form-data" method="post">
<input type="file" name="upload"/><br>
<input type="submit" value="上传文件"/>
</form>
后台action 定义四个属性 设置setter和getter方法
private File upload;//上传的文件
private String uploadContentType;//文件上传类型
private String uploadFileName;//上传文件名称
private String savePath;//保存的路径 该属性的值在struts.xml文件中配置
//savePath的getter方法需要修改下
public String getSavePath() {
//获取文件上传的时候绝对路径
return ServletActionContext.getServletContext().getRealPath(savePath);
}
上传文件方法
public String uploadFile() throws Exception{
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(getUpload());
FileOutputStream fos = new FileOutputStream(getSavePath()+"\\"+this.getUploadFileName());
int length=fis.read(buffer);
while(length>0){
fos.write(buffer,0,length);
length = fis.read(buffer);
}
fis.close();
fos.flush();
fos.close();
return "success";
}
struts配置文件
<action name="uploadFile" class="com.zhh.action.UploadAction" method="uploadFile">
<!-- 设置下载的文件所在的路径 -->
<param name="savePath">/uploadfile</param>
<result name="success">upload_success.jsp</result>
</action>
文件下载
前台页面
<a href="download?fileName=${uploadFileName }">download</a>
后台action 定义四个属性 设置setter和getter方法
//读取下载文件的目录
private String inputPath;
//下载文件的文件名
private String fileName;
//读取下载文件的输入流
private InputStream inputStream;
//下载文件的类型
private String conetntType;
//创建InputStream输入流 以流的方式读取文件 inputStream属性的getter方法需要编写
public InputStream getInputStream() throws FileNotFoundException{
String path=ServletActionContext.getServletContext().
getRealPath(inputPath);
return new BufferedInputStream(new FileInputStream(path+"\\"+fileName));
}
public String download(){
return "success";
}
struts配置文件
<action name="download" class="com.zhh.action.DownloadAction" method="download">
<!-- 设置下载的文件所在的路径 -->
<param name="inputPath">/uploadfile</param>
<result name="success" type="stream">
<!-- 允许下载的文件的类型:指定为所有的二进制的文件类型,去tomcat的wen.xml里面搜索.exe -->
<param name="contentType">application/octet-stream</param>
<!-- 对应的就是Action种的属性,返回流的属性,【其实就是getInputStream()】 -->
<param name="inputName">inputStream</param>
<!-- 下载头,包括:浏览器显示的文件名 -->
<param name="contentDisposition">
attachment;filename="${fileName}"
</param>
<!-- 缓冲区大小设置 -->
<param name="bufferSize">4096</param>
</result>
</action>
struts的上传下载的更多相关文章
- struts 文件上传下载
上传 1.编写上传action类 UploadAction.java package jxf.b_upload; import java.io.File; import java.io.IOExcep ...
- Struts文件上传下载
Struts配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PU ...
- 【Struts 文件上传下载】
RegisterAction package k.action; import k.domain.User; import k.form.UserForm; import k.service.User ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
- ssh框架文件上传下载
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- struts文件上传、文件下载
文件上传 如果在表单中上传文件,表单的enctype属性为multipart/form-data struts默认上传文件大小为2M,如果需要修改,在配置文件中设置 <constant name ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- JAVA Web 之 struts2文件上传下载演示(二)(转)
JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...
- JAVA Web 之 struts2文件上传下载演示(一)(转)
JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...
随机推荐
- 小代学Spring Boot之数据源
想要获取更多文章可以访问我的博客 - 代码无止境. 经过一天对Spring Boot的研究,小代同学已经对Spring Boot框架有了一个大概的认识.并且还创建了一个简单的Spring Boot的W ...
- golang 单元测试&&性能测试
一:单元测试 1.为什么要做单元测试和性能测试 减少bug 快速定位bug 减少调试时间 提高代码质量 2.golang的单元测试 单元测试代码的go文件必须以_test.go结尾 单元测试的函数名必 ...
- 操作xml练习
案例1:获取指定节点的内容 public void XmlTest() { string xmlFileName=AppDomain.CurrentDomain.BaseDirectory+" ...
- Spring Boot + Elasticsearch实现大批量数据集下中文的精确匹配-案例剖析
缘由 数据存储在MYSQ库中,数据基本维持不变,但数据量又较大(几千万)放在MYSQL中查询效率上较慢,寻求一种简单有效的方式提高查询效率,MYSQL并不擅长大规模数据量下的数据查询. 技术方案 考虑 ...
- E11000 duplicate key error index
E11000 duplicate key error index mongodb插入报错,重复主键问题,有唯一键值重复 一般使用collection.insertOne(doc);插入一条已存在主键的 ...
- 推荐 2 款超牛逼、炫酷、实用的Docker管理工具!
Docker技术的火热程度,想必每个互联网IT技术人员都能时时感受的到,的确,近些年,国内对于Docker容器技术的应用需求越来越强烈!! 人均年薪80万以上,docker到底是什么?为什么这么火? ...
- pycharm编辑器配置(持续更新完善)
谨记:pycharm仅是一款编辑器,不要太依赖 pycharm的提示,不然后期换了编辑器就不行了 python解释器安装.多版本共存等 去python官网下载安装,配置环境变量.多版本共存等问题请参见 ...
- eclipse(javaee windows)
百度云:链接:http://pan.baidu.com/s/1eSoO4s6 密码:54am 官方下载网址:http://www.eclipse.org/downloads/eclipse-pac ...
- Python小故事--------Tkinter的组件描述及解析
概念 Tkinter: 是Tk图形用户界面工具包标准(ctl)的Python接口,作为一个轻量级的跨平台图形用户界面(GUI)开发工具 frame: 屏幕上的一块矩形区域,多是用来作为容器(conta ...
- Spring方法级别数据校验:@Validated + MethodValidationPostProcessor
每篇一句 在<深度工作>中作者提出这么一个公式:高质量产出=时间*专注度.所以高质量的产出不是靠时间熬出来的,而是效率为王 相关阅读 [小家Java]深入了解数据校验:Java Bean ...