struts2文件下载
来源:互联网 发布:mysql loadfile 锁 编辑:程序博客网 时间:2024/06/16 05:35
上一次写了用struts2进行文件上传,这次我来给大家分享一下用struts2下载文件。
很多人可能都知道,struts2中的结果类型中有stream类型,这就是用于支持文件下载的。其实,在页面上直接给出一个超链接,href属性设为要下载的文件路径就可以完成简单的下载功能,但是这么做的话如果文件名是中文的话在默写浏览器上会下载失败。因此,我们需要在action中返回一个InputStream流作为文件下载入口。这里我为大家写了个小例子:
package action;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownloadAction extends ActionSupport {private String inputPath;//文件路径//获取文件在服务器上的保存位置public String getInputPath() {return ServletActionContext.getServletContext().getRealPath(inputPath);}//可从struts.xml中动态配置public void setInputPath(String inputPath) {this.inputPath = inputPath;}//返回一个InputStream作为文件下载入口public InputStream getTargetFile() throws Exception{File file = new File(getInputPath());InputStream in = new FileInputStream(file);return in;}public String execute() throws Exception{return SUCCESS;}}
然后是struts.xml文件:
<action name="DownloadAction" class="action.DownloadAction"><param name="inputPath">/uploadFiles/struts2文件下载.txt</param><result type="stream"><param name="inputName">targetFile</param><param name="contentDisposition">attachment;fileName="download.txt"</param></result></action>
其中有几个参数需要解释一下:
inputName指被下载文件的入口输入流。
contentDisposition中的fileName可以指定下载文件的文件名,另外还有一点要说明,服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,但是如果加上attachment,浏览器就会提示用户保存。
最后看一下前台页面download.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <body><a href="DownloadAction.action" >点击下载</a> </body></html>
在页面 中加一个超链接访问这个action。
这次一个简单的文件下载小例子就算是完成了。
0 0
- struts2实现文件下载
- struts2文件下载
- Struts2控制文件下载
- struts2文件下载
- Struts2 文件下载
- ext + struts2 下载文件
- Struts2文件下载
- Struts2文件下载
- struts2文件下载
- Struts2文件下载
- Struts2 的文件下载
- Struts2 的文件下载
- Struts2文件的下载
- Struts2文件下载
- struts2.1文件下载
- struts2文件下载
- struts2下载文件
- struts2 文件下载
- 5.20 春哥 中枪
- 第十一周 项目1-存储班长信息的学生类(1)
- 第十一周项目一存储班长信息学生类(1)
- 第十一周(点类派生直线类)
- 第十一周项目0:是春哥啊
- struts2文件下载
- C#经典书籍
- Solr与Sphinx的比较
- 第11周 项目二-职员有薪水了(2)
- 第11周项目1 - 存储班长信息的学生类
- 第10周项目1-存储班长信息的学生类(2)
- 第十一周 项目1-存储班长信息的学生类(2)
- ps怎么把图片上面的字去掉
- Raspberry Pi: INSTALLING OPERATING SYSTEM IMAGES ON MAC OS