Struts2_文件下载
2017-07-17 10:38
218 查看
生活可以漂泊,可以孤独,但灵魂必须有所归依。
Struts2中,文件下载是常用的,下面是文件下载的相关步骤:
注意:
1.结果类型必须要写成type=”stream”,与之对应的处理类是org.apache.struts2.dispatcher.StreamResult。
2.
1)
contentDisposition默认是 inline(内联的), 比如说下载的文件是文本类型的,就直接在网页上打开,不能直接打开的才会打开下载框自己选择
2) attachment :下载时会打开下载框
3) fileName=”${fileName}” :在这定义的名字是一个动态的,该名字是显示在下载框上的文件名字
文件名有中文的时候,会有中文乱码问题,需要对文件名进行编码处理。
注意:处理的顺序,需要先获取输出流,在处理文件名。
Struts2中,文件下载是常用的,下面是文件下载的相关步骤:
1.首先有一个前端界面
<%@ page language="java" pageEncoding="UTF-8" %> <%@ page contentType="text/html; charset=UTF-8" %> <!DOCTYPE html > <html> <head> <meta charset="UTF-8"> <title>下载界面</title> </head> <body> <a href="download.action">下载</a> </body> </html>
2.配置struts.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="root" namespace="/" extends="struts-default"> <action name="download" class="com.action.DownloadAction"> <result type="stream"> <param name="inputName">input</param> <param name="contentDisposition"> attachment;filename=${filename}</param> </result> </action> </package> </struts>
注意:
1.结果类型必须要写成type=”stream”,与之对应的处理类是org.apache.struts2.dispatcher.StreamResult。
2.
1)
<param name="contentDisposition">attachment;fileName="${fileName}"</param>
contentDisposition默认是 inline(内联的), 比如说下载的文件是文本类型的,就直接在网页上打开,不能直接打开的才会打开下载框自己选择
2) attachment :下载时会打开下载框
3) fileName=”${fileName}” :在这定义的名字是一个动态的,该名字是显示在下载框上的文件名字
3.Action处理
package com.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; public class DownloadAction { //定义一个输入流,对于客户端是输入流,但是对于服务端是输出流 private InputStream input; //定义一个文件名字 private String filename; public InputStream getInput() { return input; } public void setInput(InputStream input) { this.input = input; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } public String execute() { filename="1.jpg"; input=ServletActionContext.getServletContext().getResourceAsStream("/upload/"+filename); System.out.println(input); return "success"; } }
文件名有中文的时候,会有中文乱码问题,需要对文件名进行编码处理。
注意:处理的顺序,需要先获取输出流,在处理文件名。
public String execute() { filename="哈哈.jpg"; input=ServletActionContext.getServletContext().getResourceAsStream("/upload/"+filename); System.out.println(input); //针对中文乱码,进行转码 try { filename=URLEncoder.encode(filename, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return "success"; }
相关文章推荐
- struts2实现文件的上传和下载
- struts2的文件上传和文件下载
- Struts2总结---文件上传(单文件/多文件)、下载 (13)
- Struts2 文件上传下载 含下载时中文乱码
- struts2中文件下载的注意事项
- Struts2文件上传与下载
- Struts2中的文件下载
- Struts2实现下载文件
- struts2文件下载
- Struts2用action方式实现文件下载
- jquery之与struts2整合异步上传文件时弹出下载对话框的解决方法
- Struts2实现文件上传和下载
- struts2下载文件功能(边下载边打包)
- struts2文件下载
- strtus2 批量下载 中文问题、压缩文件等 ------ 讨论struts2工作流程 (摘自:http://www.blogjava.net/xcp/archive/2009/10/30/downloadlist.html)
- Struts2 文件下载(Stream)
- Struts2文件下载
- Struts2文件上传下载
- Struts2文件上传与下载
- 文件下载--Struts2的中文文件下载显示为空格问题