您的位置:首页 > 编程语言 > Java开发

struts2文件下载

2014-04-20 22:25 369 查看
struts2支持可以文件上传,必然支持文件的下载。今天我们简单的谈谈struts2的文件下。当然咯!文件的上传与下载是web开发中,必备的技能。

首先我们来讲解一下,struts.xml文件配置的相关的信息

<struts>
<package name="struts2" extends="struts-default">
<action name="FileDownload" class="com.struts2.filedownload.FileDownload">
<result name="success" type="stream">
<param name="contentType">text/plain</param>
<param name="contentDisposition">attachment;fileName="${fileName}"</param>
<param name="inputName">downloadFile</param>
<param name="bufferSize">1024</param>
</result>
</action>

</package>

</struts>
1.结果类型必须要写成 type="stream" ,与之对应的处理类是 org.apache.struts2.dispatcher.StreamResult

2.attachment :下载时会打开下载框

3.fileName="${fileName}" :在这定义的名字是一个动态的,该名字是显示在下载框上的文件名字

4.<param name="inputName">downloadFile</param>,这个downloadFile名字要和FileDownload.java类中的getDownloadFile()方法名去掉get
一致。

接下来,定义一个action类

package com.struts2.filedownload;

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

//文件下载
public class FileDownload extends ActionSupport{

private int number ;

private String fileName;

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public String getFileName() {
return fileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}

//返回一个输入流,作为一个客户端来说是一个输入流,但对于服务器端是一个 输出流
public InputStream getDownloadFile() throws Exception
{
this.fileName = "Dream.jpg" ;
//获取资源路径  这里强调一下,如果文件不存在,或者路径写错了,就会报错。   //具体的讲解请参考博文:http://blog.csdn.net/csh624366188/article/details/6690450
return ServletActionContext.getServletContext().getResourceAsStream("upload/Dream.jpg")



}


@Override public String execute() throws Exception { return SUCCESS; } }

三.接下来写的是下载的jsp文件

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'filedownload.jsp' starting page</title>
</head>
<body>

<h2>文件下载内容:</h2><br/>
Dream.jpg:<a href="FileDownload.action?number=1">点击下载</a><br/>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: