文件上传
添加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的上传下载的更多相关文章

  1. struts 文件上传下载

    上传 1.编写上传action类 UploadAction.java package jxf.b_upload; import java.io.File; import java.io.IOExcep ...

  2. Struts文件上传下载

    Struts配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PU ...

  3. 【Struts 文件上传下载】

    RegisterAction package k.action; import k.domain.User; import k.form.UserForm; import k.service.User ...

  4. Struts的文件上传下载

    Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...

  5. ssh框架文件上传下载

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. struts文件上传、文件下载

    文件上传 如果在表单中上传文件,表单的enctype属性为multipart/form-data struts默认上传文件大小为2M,如果需要修改,在配置文件中设置 <constant name ...

  7. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  8. JAVA Web 之 struts2文件上传下载演示(二)(转)

    JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...

  9. JAVA Web 之 struts2文件上传下载演示(一)(转)

    JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...

随机推荐

  1. vue中局部组件的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. EnjoyingSoft之Mule ESB开发教程系列第五篇:控制消息的流向-数据路由

    目录 1. 使用场景 2. 基于消息头的路由 2.1 使用JSON提交订单的消息 2.2 使用XML提交订单的消息 2.3 使用Choice组件判断订单格式 3. 基于消息内容的路由 4. 其他控制流 ...

  3. 用Python玩数据-笔记整理-第二章-练习与测试

    课间练习:  经典问题的Python编程 按公式:C= 5/9×(F-32) ,将华氏温度转换成摄氏温度,并产生一张华氏0-300度与对应的摄氏温度之间的对照表(每隔20度输出一次) 验证命题:如果一 ...

  4. Docker笔记(六):容器管理

    原文地址:http://blog.jboost.cn/2019/07/21/docker-6.html 容器是Docker中的另一核心概念,在Docker中,应用的运行都是在容器内进行的,容器则基于镜 ...

  5. Linux AUFS 文件系统

    AUFS 的英文全称为 Advanced Mult-Layered Unification Filesystem,曾经是 Another Mult-Layered Unification Filesy ...

  6. Java EE API

    百度云:链接:http://pan.baidu.com/s/1nvTlMLb     密码:vulq 官方下载网址:http://www.oracle.com/technetwork/java/jav ...

  7. Ubuntu通过修改配置文件进行网络配置

    Ubuntu系统进行网络配置有的时候用图形界面不起作用,这种情况下可以直接修改某些启动脚本或配置文件 Ubuntu系统进行网络配置涉及到几个配置文件1./etc/network/interfaces ...

  8. Java多线程笔记总结

    1.线程的三种创建方式 对比三种方式: 通过继承Thread类实现 通过实现Runnable接口 实现Callable接口 第1种方式无法继承其他类,第2,3种可以继承其他类: 第2,3种方式多线程可 ...

  9. 微信小程序 「柒留言」 — 实现微信公众号留言功能(限时免费入驻,建议收藏)

    「柒留言」小程序留言助手使用指南(接近原生界面) 前言 从去年 3 月以后新公众号就没得留言功能了,新申请的微信公众号没有留言功能,没有留言就无法跟读者进行互动,写出去的文章得不到反馈,着实感觉有蛮难 ...

  10. Hadoop自学系列集(一) ---- 使用VMware安装CentOS

     1.概述 笔者的学习环境--在VMware虚拟机下安装四个CentOS系统(搭建Hadoop集群用),其中一个为Master,三个为Slave,Master作为Hadoop集群中的NameNode, ...