struts2实现简单文件下载功能

Struts2提供了stream结果类型,该结果类型是专门用于支持文件下载功能的。配置stream类型的结果需要指定以下4个属性。

  contentType:指定被下载文件的文件类型

  inputName:指定被下载文件的入口输入流

  contentDisposition:指定下载的文件名

  bufferSize:指定下载文件时的缓冲大小

struts2文件下载示例:

1.处理文件下载的Action:

/**
 * Description:Struts2控制文件下载
 * Author: Eleven
 * Date: 2018/1/24 10:39
 */
public class FileAction extends ActionSupport{

  //该成员变量对应着struts.xml中inputName的值,并为其提供get方法
  private InputStream targetFile;

  //文件下载
  public String download(){
    //指定被下载资源的位置,并返回对应的输入流
    String path = "/WEB-INF/images/lib.zip";
    //利用getResourceAsStream()将指定文件转为对应的输入流
    targetFile = ServletActionContext.getServletContext().getResourceAsStream(path);
    return SUCCESS;
  }

  //提供get方法
  public InputStream getTargetFile() {
    return targetFile;
  }
}

文件下载,首先得要有被下载的文件资源,这里我将被下载文件放在了项目的WEB-INF/images的路径下面,可根据自己的需求来,然后直接用ServletContext提供的getResourceAsStream()方法返回指定文件对应的输入流。

2.配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
  <constant name="struts.enable.DynamicMethodInvocation" value="false" />
  <constant name="struts.devMode" value="true" />

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

    <action name="file_*" class="eleven.action.FileAction" method="{1}">
      <!--文件下载-->
      <!--配置结果类型为stream的结果-->
      <result type="stream">
        <!--指定下载文件的文件类型-->
        <param name="contentType">application/zip</param><!--image/jpg-->
        <!--指定action中返回被下载文件的InputStream的名称-->
        <param name="inputName">targetFile</param>
        <param name="contentDisposition">filename="aaa.zip"</param>
        <!--指定下载文件的缓冲大小-->
        <param name="bufferSize">4096</param>
      </result>
    </action>

  </package>

</struts>

在浏览器地址栏中输入对应的文件下载的访问路径,如http://localhost:8080/demo/file_download,即可下载文件了。\

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • JSP开发之Struts2实现下载功能的实例
  • struts2实现文件下载功能
  • java中Struts2 的文件上传和下载示例
  • Struts2实现文件下载功能代码分享(文件名中文转码)
  • java中struts2实现简单的文件上传与下载
  • java中struts2实现文件上传下载功能
  • JavaWeb中struts2实现文件上传下载功能实例解析
  • JavaEE中struts2实现文件上传下载功能实例解析
  • java中struts2实现文件上传下载功能实例解析
  • struts2实现文件下载功能
(0)

相关推荐

  • java中struts2实现文件上传下载功能

    先谈一谈struts2实现文件的上传和下载实例实现的原理: Struts 2是通过Commons FileUpload文件上传. Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中.从而我们就能够以本地文件方式的操作浏览器上传的文件. 具体实现: 一.创建index.jsp页面 <body> <s:form action="upload" method="p

  • java中struts2实现简单的文件上传与下载

    一.Struts2文件上传  Struts2的文件上传实现非常简单,只需要简单几步就可完成: 注意: (1)文件上传的struts2标签为:<s:file name="" label="上传"/> (2)文件上传的前提是表单属性method="post" enctype="multipart/form-data"; (3)web应用中必须包含common-fileupload.jar和common-io.jar,因

  • java中struts2实现文件上传下载功能实例解析

    本文实例讲述了java中struts2实现文件上传下载功能实现方法.分享给大家供大家参考.具体分析如下: 1.文件上传 首先是jsp页面的代码 在jsp页面中定义一个上传标签 复制代码 代码如下: <tr>      <td align="right" bgcolor="#F5F8F9"><b>附件:</b></td>      <td bgcolor="#FFFFFF">

  • JSP开发之Struts2实现下载功能的实例

    JSP开发之Struts2实现下载功能的实例 1.Action 类 package com.favccxx.strutsdemo; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import com.opensymphony.xwork2.ActionSupport; public class DownloadAction extends ActionSupport { priva

  • java中Struts2 的文件上传和下载示例

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置为 post 需添加 <input type="file"> 字段. Struts 对文件上传的支持 在 Struts 应用程序里, FileUpload 拦截器和 Jakarta Commons FileUpload 组件可以完成文件的上传. 步骤: 在 Jsp 页面的文件上

  • struts2实现文件下载功能

    文件下载是一个很常见的功能,用struts2实现文件下载的步骤: 一).定义一个Action类,FileDownload.java package com.struts2.filedownload; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; //文件下载 public class FileDown

  • JavaWeb中struts2实现文件上传下载功能实例解析

    在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在这里我分别就单文件上传和多文件上传的源代码进行一下讲解,这里需要导入文件下载上传的两个jar文件,一个是commons-fileupload-1.2.2.jar,另一个是commons-io-2.0.

  • Struts2实现文件下载功能代码分享(文件名中文转码)

    struts2文件下载功能实现代码如下所示: Action文件 public class DownLoadAction extends ActionSupport { /** * */ private static final long serialVersionUID = 5879762231742395104L; private String fileName;//用户请求的文件名 private String inputPath;//下载资源的路径(在struts配置文件中设置) publ

  • JavaEE中struts2实现文件上传下载功能实例解析

    本文实例为大家分享了struts2实现文件上传下载的具体实现代码,供大家参考,具体内容如下 一.文件上传 struts提交的文件组件上传, 前台: 1).提交方式POST 2).表单类型 multipart/form-data 3).input type=file 后台: Apache提供的FileUpload组件 核心类: FileItemFactory FileItem的工厂 ServletFileUpload servlet 中的文件上传的核心类 FileItem 封装了上传的表单文件项的

  • struts2实现简单文件下载功能

    Struts2提供了stream结果类型,该结果类型是专门用于支持文件下载功能的.配置stream类型的结果需要指定以下4个属性. contentType:指定被下载文件的文件类型 inputName:指定被下载文件的入口输入流 contentDisposition:指定下载的文件名 bufferSize:指定下载文件时的缓冲大小 struts2文件下载示例: 1.处理文件下载的Action: /** * Description:Struts2控制文件下载 * Author: Eleven *

  • JSP文件下载功能的4种方法

    对于网站来说,网站本身常常需要提供一些资源或者资料进行下载,说到下载莫过于最原始的方法就是在网页上提供下载的网址.今天讲述的还有另外的几种实现文件下载的方法,对于哪种方法更好这也是看自己的需求. 1.最直接最简单的,方式是把文件地址直接放到html页面的一个链接中.这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制(如权限).这个就不写示例了.  2.在服务器端把文件转换成输出流,写入到response,以response把文件带到浏览器,由浏览器来提示用户是否愿意保

  • Java Web项目中实现文件下载功能的实例教程

    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>通过链接下载文件&

  • php实现支持中文的文件下载功能示例

    前言 本文主要给大家介绍了关于php实现支持中文的文件下载功能的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 问题说明 文件下载,通常有一种最为简单的方法,那就是将url直接指向服务器上文件的所在位置.但是这个方法存在很大的安全隐患. 暴露了服务器文件目录结构 无法禁止非法请求来源,无法对文件下载请求做安全验证 解决方案 一.将文件下载请求映射到后端程序url 借助http服务器(apache/nginx)实现映射功能 这里以apache为例进行说明 借助apach

  • php实现简单文件下载的方法

    本文实例讲述了php实现简单文件下载的方法.分享给大家供大家参考.具体如下: 这里介绍的php文件下载代码,只是简单实现了一张图片的下载功能,还不完善,最好是封装到一个类里,或是采用函数调用.感兴趣的朋友可以在此基础上加以完善! php文件下载代码如下: <?php $file_name = "2.jpg";//需要下载的图片 define("SPATH","/php/image/");//存放图片的相对路径 $file_sub_path

  • 使用MyEclipse 开发struts2框架实现登录功能(结构教程)

    1.首先建立Web Project,名称为:struts2 ,然后选择Java EE6.0,点击Finish. 2.右击"struts"选择MyEclipse->Add Struts Capabilities,然后弹出如下弹窗,再选择Struts 2.1.选择完成即可点击Finish. 3.建完后项目目录如下图所示: 4.建立一个Login类,继承ActionSupport类(点击Superclass的Browse,选择搜索ActionSupport) 5.定义username,

  • Ruby使用eventmachine为HTTP服务器添加文件下载功能

    思路: 使用ruby eventmachine和em-http-server gem,完成一个简单的提供文件下载功能的HttpServer: 使用了EM的FileStreamer来异步发送文件,发送文件时先组装了header,然后调用FileStreamer. 代码: require 'rubygems' require 'eventmachine' require 'em-http-server' class HTTPHandler < EM::HttpServer::Server attr_

  • Android使用WebView实现文件下载功能

    本文实例为大家分享了WebView实现文件下载功能的具体代码,供大家参考,具体内容如下 本节引言 本节给大家介绍的是WebView下载文件的知识点,当我们在使用普通浏览器的时候,比如UC, 当我们点击到一个可供下载链接的时候,就会进行下载,WebView作为一个浏览器般的组件, 当然也是支持下载,我们可以自己来写下载的流程,设置下载后的文件放哪,以什么文件名 保存,当然也可以调用其它内置的浏览器来进行下载,比如Chrome,UC等等! 下面给大家演示下用法! 1.调用其它浏览器下载文件: 这个很

  • golang实现http server提供文件下载功能

    简介 Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor.Russ Cox加入项目.Go是基于Inferno操作系统所开发的.Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windo

随机推荐