struts2下载文件时出现乱码问题
来源:互联网 发布:淘宝哪天买东西最便宜 编辑:程序博客网 时间:2024/05/21 17:00
动作类代码:
package com.itheima.web.action;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownLoadAction extends ActionSupport {private InputStream inputStream;private String fileName;public String downLoad() throws FileNotFoundException, UnsupportedEncodingException{String file = ServletActionContext.getServletContext().getRealPath("/WEB-INF/upload/1.jpg");//(此处假设服务器中有这个目录和文件)inputStream = new FileInputStream(file);fileName = "中文.jpg";/*方式一:fileName = URLEncoder.encode(fileName, "UTF-8");方式二:fileName = new String(fileName.getBytes("UTF-8"),"ISO8859-1");方式三:在结果视图中设置参数contentDisposition时用ognl表达式${@java.net.URLEncoder@encode(fileName,"UTF-8")}<param name="contentDisposition">attachment;filename=${@java.net.URLEncoder@encode(fileName,"UTF-8")}</param>*/return SUCCESS;}public InputStream getInputStream() {return inputStream;}public void setInputStream(InputStream inputStream) {this.inputStream = inputStream;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}}struts2.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><constant name="struts.devMode" value="true" /><constant name="struts.ognl.allowStaticMethodAccess" value="true"/><package name="p1" extends="struts-default"><action name="downLoad" class="com.itheima.web.action.DownLoadAction" method="downLoad"><result name="success" type="stream"><param name="inputstream">inputStream</param><param name="contentType">application/octet-stream</param><!-- <param name="contentDisposition">attachment;filename=${fileName}</param> --><param name="contentDisposition">attachment;filename=${@java.net.URLEncoder@encode(fileName,"UTF-8")}</param></result></action></package></struts>
struts2下载文件出现中文乱码问题可以用动作类中的两个方法,也可以在设置struts2.xml中action的结果视图result的参数contentDisposition时,在给filename赋值时使用
ongl表达式${@java.net.URLEncoder@encode(fileName,"UTF-8")},(注意:此处的fileName要与动作类的fileName属性的get方法保持一致,否则下载的文件名就是download.action)由于此处使用ognl表达式使用了静态方法,所以要在前面开启struts2的中ognl静态方法,即设置常量<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>相对于前两种方法第三种方法复杂一点点。
0 0
- struts2下载文件时出现乱码问题
- Struts2 下载文件乱码问题
- Struts2 文件下载中文文件名乱码问题
- struts2文件下载中文乱码问题彻底解决
- struts2解决下载中文文件乱码问题
- 关于文件下载出现乱码问题
- 文件下载出现中文乱码问题
- struts2实现文件下载出现的乱码解决
- struts2实现文件下载所出现的乱码,解决方法
- Struts2文件下载文件名中文出现乱码解决办法
- 下载文件时出现保存对话框乱码
- Struts2 文件下载及中文乱码问题的解决方案
- Struts2-文件上传下载-解决下载中文乱码问题
- struts2 Annotation 实现文件下载功能 文件名中文乱码问题
- Struts2 文件下载及中文乱码问题的解决方案
- Struts2 文件下载 FF浏览器文件名乱码问题
- struts2 文件下载文件名中文乱码及变成空格问题
- struts2文件下载,中文名称乱码
- 大视频时代,网络电视台建设运营思路&技术基础架构建议
- 整形数和浮点数在内存中的存储方式
- KMP算法中的next数组
- 数据库优化_零碎
- C\C++中计时、延时函数
- struts2下载文件时出现乱码问题
- 城市地理空间数据可视化
- CNN在中文文本分类的应用
- XXTea 加密/解密 字符串
- Redis 复制原理及分析
- 勾股定理一日一证连载153
- /etc/ansible/ansible.cfg
- Java并发----ConcurrentHashMap01--(Happens-Before规则)
- 语音合成-----ekho a Chinese text-to-speech engine