struts2文件下载
来源:互联网 发布:遭受网络攻击 损失 编辑:程序博客网 时间:2024/06/07 05:35
在web中,有文件上传,就必定有文件下载。使用struts2编写问加你下载程序时,需要在struts.xml中配置一个stream类型的结果映射,该结果类型包含以下四个属性:
1、contentType:指定下载文件的文件类型。这里的文件类型与因特网MIME标准中的规定类型要一致,例如:text/plain代表纯文本,text /xml表示xml文件,image/gif代表GIF图片。
2、InputStream:指定下载文件的入口输入流。如果下载文件入口输入流为getTargetFile()方法,则必须指定该属性的值是targetFile。
3、contentDisposition: 指定文件下载的处理方式,包括两种方式:内联(inline)和附件(attachment)。内联方式表示浏览器会尝试 直接显示文件,附件方式会弹出“文件保存”对话框。其默认值是inline。
文件下载处理的Action:DocDownLoadAction.java:
struts.xml配置:
1、contentType:指定下载文件的文件类型。这里的文件类型与因特网MIME标准中的规定类型要一致,例如:text/plain代表纯文本,text /xml表示xml文件,image/gif代表GIF图片。
2、InputStream:指定下载文件的入口输入流。如果下载文件入口输入流为getTargetFile()方法,则必须指定该属性的值是targetFile。
3、contentDisposition: 指定文件下载的处理方式,包括两种方式:内联(inline)和附件(attachment)。内联方式表示浏览器会尝试 直接显示文件,附件方式会弹出“文件保存”对话框。其默认值是inline。
4、bufferSize:指定下载文件时的缓冲大小,其默认值是1024
实现文件下载功能代码(在文件上传的基础上实现):
文件下载页面(即:上传文件成功时显示所有文件的页面):success.jsp:
<h2>上传成功界面</h2>上传者:${uname}<table border="1" cellpadding="0" cellspacing="0" width="50%"><tr><td>上传文件</td><td>上传时间</td></tr><s:iterator status="st" value="uploadFileName"><tr><td><a href="DocDownLoadAction!downLoadFile.action?downPath=upload/<s:property value="uploadFileName[#st.getIndex()]" />"><s:property value="uploadFileName[#st.getIndex()]" /></a></td><td><s:date name="createTime" format="yyyy-MM-dd HH:mm:ss" /></td></tr></s:iterator></table>
文件下载处理的Action:DocDownLoadAction.java:
package com.web.action;import java.io.InputStream;import java.io.UnsupportedEncodingException;import org.apache.struts2.ServletActionContext;//文件下载的action@SuppressWarnings("serial")public class DocDownLoadAction extends BaseAction {// 下载文件的文件位置private String downPath;@SuppressWarnings("unused")public InputStream getInputStream() throws Exception {// 获取处理了中文乱码后的文件名称String realPath = this.getDownLoadFileName();// 返回InputStream流方法return ServletActionContext.getServletContext().getResourceAsStream(realPath);}// 文件名转换编码,防止中文乱码public String getDownLoadFileName() {String downFileName = null;try {// 处理URL后面挂的参数的中文乱码downFileName = new String(downPath.getBytes("ISO8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return downFileName;}public String downLoadFile() {System.out.println(ServletActionContext.getServletContext().getResourceAsStream(downPath));return SUCCESS;}public String getDownPath() {return downPath;}public void setDownPath(String downPath) {this.downPath = downPath;}}
struts.xml配置:
<!-- 文件下载的action配置 --><action name="DocDownLoadAction" class="com.web.action.DocDownLoadAction"><result type="stream" name="success"> <!-- 指定结果类型为stream --><param name="contentType"> <!-- 指定下载文件的文件类型 -->application/msword,text/plain,application/vnd.ms-powerpoint,application/vnd.ms-excel</param><param name="inputName">inputStream</param> <!-- 指定下载文件的入口输入流 --><param name="contentDisposition"> <!-- 指定下载文件的处理方式与文件保存名 -->attachment;filename="${downLoadFileName}"</param><param name="bufferSize">40960</param> <!-- 指定下载文件的缓冲区大小 --></result></action>实现效果:
阅读全文
0 0
- struts2实现文件下载
- struts2文件下载
- Struts2控制文件下载
- struts2文件下载
- Struts2 文件下载
- ext + struts2 下载文件
- Struts2文件下载
- Struts2文件下载
- struts2文件下载
- Struts2文件下载
- Struts2 的文件下载
- Struts2 的文件下载
- Struts2文件的下载
- Struts2文件下载
- struts2.1文件下载
- struts2文件下载
- struts2下载文件
- struts2 文件下载
- java-->线程总结
- 最小生成树 :: Prim && Kruskal 模板
- 双向链表与循环链表
- poj1011Sticks(搜索+剪枝)
- 微信小程序数据绑定和简单的运算
- struts2文件下载
- C++常用数据类型
- 工作线程数究竟要设置为多少
- 分治——最大子数组问题
- 文章标题
- 欢迎使用CSDN-markdown编辑器
- es6
- FFmpeg安装及encode库的安装说明
- 开启vue大门