01-使用struts进行文件下载


Dowload.java

package controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class Download extends ActionSupport {
	/**
	 * 
	 */
	private static final long serialVersionUID = 7150228990041101604L;
	private String fileName = "";

	@Override
	public void validate() {

	}

	public String getFileName() throws UnsupportedEncodingException {
		return new String(fileName.getBytes("gbk"), "iso-8859-1");
	}

	public void setFileName(String fileName)
			throws UnsupportedEncodingException {
		this.fileName = new String(fileName.getBytes("ISO8859-1"));
	}

	public InputStream getDownloadFile() throws IOException {
		ServletActionContext.getResponse().setContentType(
				"application/x-msdownload");
		FileInputStream FileInputStreamRef = new FileInputStream(new File(
				ServletActionContext.getServletContext().getRealPath("") + "\\"
						+ fileName));
		ServletActionContext.getResponse().setHeader("Content-Disposition",
				"attachment;filename=" + getFileName());
		return FileInputStreamRef;
	}

	public String execute() throws IOException {
		return "success";
	}
}

struts.properties

struts.multipart.maxSize=2048000000;
struts.multipart.saveDir=/tempUploadFile
struts.i18n.encoding=GBK

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>
	<package name="struts3.5" extends="struts-default">
		<action name="download" class="controller.Download">
			<result name="success" type="stream">
				<param name="inputName">downloadFile</param>
				<param name="bufferSize">1024</param>
			</result>
		</action>
	</package>
<constant name="struts.ui.theme" value="simple"></constant>
</struts>
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
	<!-- 配置struts2过滤器 -->
	<display-name>Struts Blank</display-name>
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<!-- filter映射 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 欢迎界面 -->
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
register.jsp

<%@ page language="java" import="java.util.*,java.net.*"
	pageEncoding="UTF-8"%>
<%@page isELIgnored="false"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件下载</title>
</head>

<body>
	<a
		href="download.action?fileName=<%=URLEncoder.encode("测试用的RAR.rar")%>">测试用的RAR.rar</a>
	<br />
	<a href="download.action?fileName=abc.rar">abc.rar</a>
	<br />
</body>
</html>



效果:



项目源文件地址:

http://download.csdn.net/detail/u010653050/5956517

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值