/* 文件下载的先决条件
* 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>

最新文章

  1. Vim命令合集
  2. JavaScript 学习笔记(一)
  3. C语言 ---- 循环分支 iOS学习-----细碎知识点总结
  4. maven的安装与使用
  5. CGFloat和float
  6. Curvy unity
  7. des 加密 iOS
  8. CSharp笔记&gt;&gt;&gt;多语言,注册
  9. javascript之DOM编程设置节点插入节点
  10. util.go 源码阅读
  11. 部署WebService
  12. 【纪录】Proxychain4 使用部署以及利用 ss 加速下载操作
  13. SharePoint Framework Extensions GA Release
  14. Nodejs安装express提示不是内部或外部命令
  15. virtualenv搭建python3 环境
  16. 特征选择 - Filter、Wrapper、Embedded
  17. python mysql connector
  18. 错误检查roswtf
  19. 超全面的JavaWeb笔记day17&lt;JDBC&gt;
  20. Topic 与 Partition

热门文章

  1. js原生继承之——组合式继承实例
  2. Visual Studio 2015的安装与基本使用
  3. 时钟(AnalogClock和DigitalClock)的功能与用法
  4. 创建第一个Android应用程序 HelloWorld
  5. JS之ONLoad事件
  6. 理解FMS中的实例
  7. jQuery如何实现点击页面获得当前点击元素
  8. LinuxMint18配置Grub2默认启动操作系统
  9. Quill编辑器介绍及扩展
  10. iOS-如何使用symbolicatecrash