struts2实现文件下载功能实例

2025-05-29 0 53

本文实例为大家分享了struts2下实现文件下载功能实例,供大家参考,具体内容如下

下面以实现一个图片下载功能为例:

1. 项目结构

struts2实现文件下载功能实例

2. web.xml

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29
<?xml version="1.0" encoding="utf-8"?>

<web-app version="3.0"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"

xsi:schemalocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

<!-- 设置struts 2过滤器 -->

<filter>

<filter-name>struts 2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts 2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- 设置欢迎页面 -->

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<!-- session超时定义,单位为分钟 -->

<session-config>

<session-timeout>30</session-timeout>

</session-config>

</web-app>

3.downloadaction.java

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28
package com.action;

import java.io.inputstream;

import org.apache.struts2.servletactioncontext;

import com.opensymphony.xwork2.actionsupport;

public class downloadaction extends actionsupport{

private static final long serialversionuid = 1l;

//文件路径

private string path;

//path属性的getter方法

public string getpath(){

return path;

}

//path属性的setter方法

public void setpath(string path){

this.path = path;

}

//返回inputstream,文件下载关键方法

public java.io.inputstream getdownloadfile() throws exception{

inputstream in = servletactioncontext.getservletcontext().getresourceasstream(getpath());

return in;

}

public string execute() throws exception{

return success;

}

}

4.struts.xml

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33
<?xml version="1.0" encoding="utf-8" ?>

<!doctype struts public "-//apache software foundation//dtd struts configuration 2.1//en" "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

<!-- 配置 struts 2 应用中的常量 -->

<constant name="struts.i18n.encoding" value="utf-8" />

<!-- 配置上传文件的最大容量,struts2默认为2m。单位是1b, 1kb=1024b,1m=1024kb,1m=1024*1024b-->

<constant name="struts.multipart.maxsize" value="1048576" />

<!-- 配置本应用中的包,继承 struts-default 包 -->

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

<action name="download" class="com.action.downloadaction">

<!-- 设置文件路径的参数,传到action类文件中去 -->

<!-- <param name="path">\\download\\a.jpg</param> -->

<!-- 下载文件类型定义,即定义为“stream” -->

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

<!-- image/jpeg代表jpg图片 -->

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

<!-- 下载文件处理方法 -->

<param name="contentdisposition">

<!-- attachment表示附件方式,即下载时打开保存对话窗,filename表示下载时显示的保存时的文件名 -->

<!-- 如果不写attachment;或者是写的是inline; 则表示内联,即会在浏览器中尝试打开下载的文件,而不是下载-->

attachment;filename="a.jpg"

</param>

<!-- 下载文件输出流定义 -->

<!-- 这里的inputname元素所对应的value值downloadfile,在action中一定要有对应的getdownloadfile()方法 -->

<param name="inputname">downloadfile</param>

<!-- 下载缓冲区的大小 -->

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

</result>

</action>

</package>

</struts>

5.index.jsp

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>

<%

string path = request.getcontextpath();

string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";

%>

<!doctype html public "-//w3c//dtd html 4.01 transitional//en">

<html>

<head>

<base href="<%=basepath%>" rel="external nofollow" >

<title>首页</title>

</head>

<body>

<center>

欢迎来到首页,点下面链接去下载一个文件<br />

<a href="download.action?path=<%=" rel="external nofollow" ./download/a.jpg" %>">下载</a>

</center>

</body>

</html>

6.文件路径

项目中要提前建立好download目录,和里面要存在有a.jpg文件,否则,下载会失败。

7.功能入口

项目发布到服务器后,用浏览器访问项目中的index.jsp ,点击下载链接,就可以弹出“下载”对话框。

原文链接:https://blog.csdn.net/wangcunhuazi/article/details/41171707

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 struts2实现文件下载功能实例 https://www.kuaiidc.com/112551.html

相关文章

发表评论
暂无评论