Struts2--文件的下载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2--文件的下载相关的知识,希望对你有一定的参考价值。

通过个人的struts2案例,了解struts2如何下载文件

1.<!-- 在action中配置-->

<result name="success" type="stream">

  //下载的文件类型

  <param name="contentType">image/jpeg</param>

  //文件输入流来源

  <param name="inputName">imageStream</param>

  //设置保存文件的文件名 

  <param name="contentDisposition">attachment;filename="document.pdf"</param>

  //缓冲区大小

  <param name="bufferSize">1024</param>

</result>

    1.1.以上参数可以通过 Action 中的getter方式提供值!<不必再result中设置参数了>

    1.2以下案例通过getter给变量赋值

2.javabean 具体实现代码 (案例)

package com.cn.web;


import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;


import org.apache.struts2.ServletActionContext;


import com.opensymphony.xwork2.ActionSupport;


public class DownloadFile extends ActionSupport {


/**

* struts2 文件下载图片

*/

private static final long serialVersionUID = 1L;

        

        // 获取文件名称

private String imgname;

// 下载的文件类型

private String contentType;

// 下载的文件长度

private long contentLength;

// 设置保存文件的文件名

private String contentDisposition;

        // 文件输入流来源

private InputStream inputStream;


public String getContentType() {

return contentType;

}


public void setContentType(String contentType) {

this.contentType = contentType;

}

public long getContentLength() {

return contentLength;

}


public void setContentLength(long contentLength) {

this.contentLength = contentLength;

}


public String getContentDisposition() {

return contentDisposition;

}

public void setContentDisposition(String contentDisposition) {

this.contentDisposition = contentDisposition;

}

public String getImgname() {

return imgname;

}


public void setImgname(String imgname) {

this.imgname = imgname;

}


public InputStream getInputStream() {

return inputStream;

}


public void setInputStream(InputStream inputStream) {

this.inputStream = inputStream;

}


// 获取下载的视图

public String downloadUI() {


return "downloadUI";

}


public String execute() throws IOException {

// 确定各个成员变量的值

contentType = "image/jpeg";

contentDisposition = "attachment;filename=" + imgname + ".jpg";

String newsrc = ServletActionContext.getServletContext().getRealPath(

"/WEB-INF/upload" + File.separator + imgname + ".jpg");

System.out.println(newsrc);

inputStream = new FileInputStream(newsrc);

contentLength = inputStream.available();


return SUCCESS;

}

}

3.打开struts2.xml文件,在相应的action中配置<result name="success" type="stream"></result> 

        <action name="down_*" class="com.cn.web.DownloadFile" method="{1}">

<result name="{1}">/WEB-INF/downloadUI.jsp</result>

<!-- 提供内容给用户下载 -->

<result name="success" type="stream">

<!-- 缓冲区大小 -->

<param name="bufferSize">1024</param>

</result>

</action>



4.html代码

    

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"

contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="/struts-tags" prefix="s"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>



<title>Struts2 文件下载</title>


<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">


</head>


<body>


<a href="down_execute?imgname=886001c3-335b-4604-b547-a659f55ddf76">文件下载1:</a>

<hr>

<br />

<a href="down_execute?imgname=eff2d51f-192a-451c-be06-050fb6529ffd">文件下载2:</a>

<hr>

<br>

<a href="down_execute?imgname=e813e7ad-18dd-461a-87cf-2b035d41026d">文件下载3:</a>

<br>


<hr>


</body>

</html>



本文出自 “12276706” 博客,请务必保留此出处http://12286706.blog.51cto.com/12276706/1872149

以上是关于Struts2--文件的下载的主要内容,如果未能解决你的问题,请参考以下文章

基于Struts2框架的文件下载 --- Struts2

Struts2入门——Struts2的文件上传和下载

Struts2学习—文件上传和下载

第五节 Struts2 - 文件上传与下载

struts2响应文件 struts2下载txt

Struts2--文件的下载