使用Struts2做一个简单的文件下载。

首先,导包,写配置文件就不说了。

进入主题。

文件下载操作类:FileDownload.java

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileDownload extends ActionSupport{
 
 private InputStream inputStream;
 private String fileName;

public String getFileName() {
  return fileName;
 }

public void setFileName(String fileName) {
  this.fileName = fileName;
 }

public InputStream getInputStream() {
  fileName="144003645679.jpg";
  return ServletActionContext.getServletContext().getResourceAsStream("/upload/144003645679.jpg");
  
 }
 
 public String execute() {
  return SUCCESS;
 }
}

Struts.xml文件

<package name="fileaction" namespace="/" extends="struts-default">

<action name="filedownload" class="com.dkx.action.FileDownload" >
    <result name="success" type="stream">
    <!-- contentType 指定下载文件的文件类型 —— application/octet-stream 表示无限制   -->
               <param name="contentType">text/plain</param>
              
               <!-- contentDisposition 使用经过转码的文件名作为下载文件名 ——
                 默认格式是attachment;filename="${fileName}",
                 将调用该Action中的getFileName方法。 --> 
                
               <param name="contentDisposition">attachment;fileName="${fileName}"</param> 
              
               <!-- inputName 流对象名 ——
                比如这里写inputStream,它就会自动去找Action中的getInputStream方法。 -->
              
               <param name="inputName">inputStream</param> 
              
               <!-- 指定下载文件的缓冲大小 -->
              
               <param name="bufferSize">50000000</param>
         </result> 
    </action>
   </package>

Jsp页面文件:

<a href="${basePath }filedownload.action">下载</a>

至此大功告成。点击下载。。

最新文章

  1. Swap Nodes in Pairs
  2. wampServer图标为橙色无法启动原因之一
  3. 在sql server中利用with as实现递归功能
  4. AutoMapper简明教程(学习笔记)
  5. Nagios学习笔记二:Nagios概述
  6. tp_link路由器 重新设置
  7. VisualStudio如何以源码文本方式打开rc文件
  8. IIS管理器的快捷方式在哪里?
  9. 给a标签herf属性赋值时,必须加http://
  10. git推送本地分支到远端 以及删除远端分支的 命令
  11. Design Pattern —— Singleton
  12. asp.net 常用的3中身份验证
  13. 洛谷 P4168 [Violet] 蒲公英
  14. 回调函数的原理及PHP实例
  15. Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线
  16. Java集合框架(简介明了)
  17. java语言打印上三角和下三角,进一步得到九九乘法表
  18. 在 R 中估计 GARCH 参数存在的问题(续)
  19. (转)Maven学习总结(六)——Maven与Eclipse整合
  20. C# 窗口自适应窗口宽度和高度

热门文章

  1. Qt Quick分组属性案例
  2. 新的疑问(未解决):VC项目的配置,不是都能在Project -- Properties里设置解决的
  3. lr 自带的例子,如何进行关联,通过代码的函数进行实现
  4. How to make onActivityResult get called on Nested Fragment
  5. 使用read(),write(),seekg(),seekp()实现二进制方式文件随机存取
  6. 深度优先搜索-linux上浅显易懂的例子
  7. Office2007图标变成白框,但是还能使用问题解决办法
  8. Ubuntu + Win7 双系统 重装win7后进入不了Ubuntu
  9. AFNetworking (3.1.0) 源码解析 &lt;四&gt;
  10. UITableViewStyleGrouped顶部留白问题