/* 文件下载的先决条件
* 1. 在xml配置文件中必须配置一个type="stream"的result, result中不需要填写任何内容 * 2. 在Action中编写一个接收文件名的String, 这个变量名必须和JSP页面的参数名完全吻合
* 3. 可以在result中配置一个名为"contentDisposition"的参数, 值是attachment;fileName=${fileName}
* * attachment表示当前下载的内容让浏览器以下载的方式打开
* * ${fileName}表示从对应的Action中获取要下载的文件名, Action中必须提供对应参数的getter方法
*/

1.代码示例:

--->Action类

public class FileDownLoadAction extends ActionSupport {
private static final long serialVersionUID = 1L;
//文件传过来的名字
private String fileName; public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
} public String execute() throws Exception {
System.out.println("FileDownLoadAction.execute()");
if (fileName == null) {
System.out.println("文件不存在");
}
System.out.println(fileName);
return SUCCESS;
}
//下载文件的主要业务处理
public FileInputStream getInputStream() throws Exception {
//获取到"/FileTransport"的路径
String path = ServletActionContext.getServletContext().getRealPath("/FileTransport");
//获取到"/FileTransport"路径下和接受到的文件名一样
File file = new File(path, fileName);
//返回获取到的文件
return new FileInputStream(file);
}
}

--->filedownload.jsp

<body>
            提交过去的值为文件名相同
<a href="${pageContext.request.contextPath}/filedownload?fileName=index.txt">文件下载</a>
</body>

----->配置struts.xml文件

<action name="filedownload"  class="com.gxxy.filetransport.fileupload.FileDownLoadAction">
<result>/JSP/filetransport/filedownload.jsp</result>
<result type="stream">
<param name="contentDisposition">attachment;fileName=${fileName}</param>
</result>
</action>

Struts文件下载的更多相关文章

  1. struts 文件下载

    =============================struts 文件下载  ================================== 步骤一: JSP页面 <a href=& ...

  2. struts 文件下载 annotation 注解版

    [本文简介] 本文将简单介绍使用 struts2 ,通过零配置和 annotation 实现文件下载功能. [文件夹结构] [web.xml有关struts的配置] <filter> &l ...

  3. struts文件下载机制

    Struts2 中使用 type="stream" 的 result 进行下载即可.只用提供一个输入流inputStream,剩下的输出工作struts帮我们做. 例子一: 1.可 ...

  4. Struts文件下载具体解释

    在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码 1.action类 public class FileDownLoadAction extends ActionS ...

  5. Struts文件下载(静态)

    前言:在实际的开发中,我们可能需要动态下载和静态下载, 动态下载:例如我上传了一个文件,你想下载,那就必须动态生成下载链接,因为我服务器一开始是不知道我上传的东西是什么,放在那里, 静态下载:比如一些 ...

  6. struts2中的文件上传,文件下载

    文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...

  7. struts 多文件上传 annotation注解(零配置)+ ajaxfileupload + 异步 版本

    [本文简介] struts 多文件上传.基于”零配置“+"ajaxfileupload" 的一个简单例子. [导入依赖jar包] jquery-1.7.2.js : http:// ...

  8. Struts2 控制文件上传下载

    之前介绍servlet3.0新特性的时候有提到过servlet API提供了一个part类来实现对文件的上传和保存,Struts其实是在其基础上做了进一步的封装,更加简单易用.至于文件下载,Strut ...

  9. Java自学手记——struts2

    struts2框架 struts2是一种基于MVC模式的框架,是在struts1的基础上融合了xwork的功能. struts2框架预处理了一些功能: >请求数据自动封装, >文件上传的功 ...

随机推荐

  1. js原生继承之——构造函数式继承实例

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

  2. MySQL只恢复某个库或某张表

    在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]#mysqldump -uroot -p --single-transaction -A --master-da ...

  3. Pomelo的Protobuf

    pomelo的protobuf实现,借助了javascript的动态性,使得应用程序可以在运行时解析proto文件,不需要进行proto文件的编译.pomelo的实现中,为了更方便地解析proto文件 ...

  4. V8 Javascript 引擎设计理念

    Netscape Navigator 在 90 在年代中期对 JavaScript 进行了集成,这让网页开发人员对 HTML 页面中诸如 form .frame 和 image 之类的元素的访问变得非 ...

  5. border-radius是向元素添加圆角边框的方法

    border-radius:10px; /* 所有角都使用半径为10px的圆角 */ border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角.右上角.右下角和左下 ...

  6. MVC + Vue.js 初体验(实现表单操作)

    Vuejs http://cn.vuejs.org/ Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...

  7. 如何使用DockerHub官方的mysql镜像

    Mysql是一个广泛使用的开源关系型数据库. 如何获取Mysql Docker镜像? docker pull mysql:5.7 如何使用这个Docker镜像? 1.启动一个Mysql Server容 ...

  8. MyBatis:学习笔记(3)——关联查询

    MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...

  9. 基于canvas和jsp的头像剪辑上传

    最近在做项目时候需要一个头像长传功能,但是现在照片动不动就几兆的,都是流量的浪费. 我只是简单想要上传一个头像而已... 经过几天发愤图强..总算是略有所获.. 基本思路: 1.html部分,图片剪辑 ...

  10. 浅谈-Lambda

    Lambda简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1.0后新增的最重要的功能之一. 简介: lambda运算符:所有的lambda表达式都是用新的lambda运算符 &qu ...