使用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>

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

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

  1. Struts2文件下载浅析

    Struts2极大的简化了文件上传和下载,本文将主要介绍一下Struts2文件下载的实现1.功能主要是,在下载页面点击下载后,则下载相应的文件 2.代码部分jsp页面downloadPage:< ...

  2. struts2文件下载 <result type="stream">

    <!--struts.xml配置--> <action name="download" class="com.unmi.action.DownloadA ...

  3. struts2文件下载及 <param name="inputName">inputStream</param>的理解

    转自:http://blog.csdn.net/wnczwl369/article/details/7483290 转自:http://hi.baidu.com/c2_sun/item/934a542 ...

  4. struts2文件下载相关信息

    struts.xml文件配置: <span style="font-size:16px;"><?xml version="1.0" encod ...

  5. Struts2文件下载

    1). Struts2 中使用 type="stream" 的 result 进行下载 2). 可以为 stream 的 result 设定如下参数 contentType: 结果 ...

  6. struts2文件下载出现Can not find a java.io.InputStream with the name的错误

    今天在用struts2就行文件下载时出现如下错误: Servlet.service() for servlet default threw exception java.lang.IllegalArg ...

  7. Struts2 文件下载(中文处理方法以及控制下载文件名称和扩展名)

    Struts2的框架提供了现成的文件下载方式,大大简化了开发下载功能的便利性.网上的例子有很多,我把一些大家普遍比较关注的点,集中一下,给出一个整体方案. 一般我们照着书本或者网上的列子写出了一个De ...

  8. struts2文件下载,动态设置资源地址

    转自:http://blog.csdn.net/ctrl_shift_del/article/details/6277340 ServletActionContext.getServletContex ...

  9. struts2文件下载 出现Can not find a java.io.InputStream with the name的错误

    成功代码: 前台界面jsp: <a style="text-decoration:none;" href="<%=path %>/main/frontN ...

随机推荐

  1. mobile plugin

    http://fronteed.com/iCheck/ http://spritely.net/documentation/ http://www.mobilexweb.com/blog/mobile ...

  2. 用JvisualVM监视远程tomcat

    在tomcat的catcalina.sh 中java_opts 环境变量中添加以下参数: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmx ...

  3. 开启和关闭wifi的代码段

    1.需要申请的权限android.permission.ACCESS_WIFI_STATE android.permission.CHANGE_WIFI_STATE android.permissio ...

  4. C#之VS2010ASP.NET页面调用Web Service和winform程序调用Web Service

    一:用ASP.NET调用Web Service 打开VS2010,打开“文件-新建-网站”,选择“ASP.NET网站” 选好存储位置,语言后点击确定,进入默认页面.然后先添加Web引用,把WebSer ...

  5. [Design Pattern] Adapter Pattern 简单案例

    Adapter Pattern, 即适配器模式,用于连接两个不兼容的接口,属于结构类的设计模式. 或者叫做,转换器模式. 下面是一个转换器模式简单案例. 假设已有 AudioPlayer 专门播放 m ...

  6. UVA10557- XYZZY(spfa+设置次数上限)

    题意:有N个房间,刚开始你位于1号房间,有100的能量值,你要到达N号房间,每两个房间之间有单向门相连接,你到达某个房间可以加上该房间的能量值, 如果你在未到达N号房间之前能量值耗尽,则死亡,否则胜利 ...

  7. java中输入方式Scanner和BufferedReader

    Scanner 在java.util包中,需要引入时可以用import java.util.*;或者import java.util.Scanner; 工作原理:通过new创建一个Scanner对象, ...

  8. 数据库 —— Access 数据库

    0.Access 下载 1.Access 语法 链接:http://blog.csdn.net/tercel99/article/details/5725157 2.ADO 相关: 在VC++6.0中 ...

  9. 无锁,线程安全,延迟加载的单例实现(C#)

    单例(singleton)是非常常见,也非常有用的设计模式,当然了, 面试中也是经常会被问到的:)在几乎所有的项目中都能看到它的身影.简而言之,单例保证了一个自定义类型在整个程序的生命周期只被创建一次 ...

  10. JAVA-1-学习历程1:基础知识1

     前言:此文属于个人学习中总结记录的较重要的知识点,分享一下.望对刚開始学习的人有点用. 视频04   语句.函数.数组 1.函数的重载 2.数组内存空间的划分 栈.堆 视频05    数组 1. ...