struts2 下载文件不能显示中文名字的问题

原创 2015年07月10日 15:18:54

最近在看Struts 2 的知识,遇到一个下载不能显示中文名字的问题,查找了网上的的内容,最终得到了解决。


Struts.xml

<action name="download" class="com.jia.action.FileDownloadAction">
       <result name="success" type="stream">
          <param name="contentType">${contentType}</param>
          <param name="inputName">targetFile</param>
          <param name="contentDisposition">filename=${downFileName}</param>
          <param name="bufferSize">4096</param> 
       </result>
    
    
    </action>

action:

package com.jia.action;

import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileDownloadAction extends ActionSupport {

	private String inputPath;
	private String contentType;
	private String downFileName;
	

	public String getInputPath() {
		return inputPath;
	}

	public void setInputPath(String inputPath) throws Exception {
        /*
         * 必须转码,否则找不到路径
         */
		this.inputPath = new String(inputPath.getBytes("iso-8859-1"),"utf-8");
//	    this.inputPath=inputPath;
	}

	public String getContentType() {
		return contentType;
	}

	public void setContentType(String contentType) {
		this.contentType = contentType;
	}

	public String getDownFileName() {
		return downFileName;
	}


	public void setDownFileName(String downFileName) throws Exception {
		
		this.downFileName =  new String(downFileName.getBytes("iso-8859-1"),"utf-8");
	}

	public InputStream getTargetFile() throws Exception{
		//转换格式,否则中文不能显示。
		this.downFileName=new String(downFileName.getBytes(),"iso-8859-1");
		return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
	}
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		System.err.println(downFileName);
		return super.execute();
	}

	public FileDownloadAction() {
		// TODO Auto-generated constructor stub
	}

}


 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Struts2 文件下载及中文乱码问题的解决方案

Java代码   一 struts.xml文件的编辑         package name="crud-default" extends...

struts2文件上传下载(含中文编码问题)

struts 2文件上传下载,遇到许多问题,知道很多东西特来分享 2.文件上传 public class FileUpload

struts2文件上传下载(含中文编码问题)

1.上传界面jsp enctype属性一定要写成multipart/form-data不然就会以二进制文本上传到服务器端,使用 get/post方法对中文编码转码有影响  [htm...

Struts2文件上传与下载中的中文乱码问题解决方案

一.、乱码问题概述:在实际项目与应用中,文件上传和下载的对象大多是中文文档,因此在Struts的文件上传和下载功能实现中,中文乱码是一个不得不面对的问题。其中的乱码问题分为两类: 1、jsp页面中...

struts2文件下载及文件名中文问题

1. struts2配置文件: testStream application/octet-stream;charset=GBK <!-- f

Struts2-文件上传下载-解决下载中文乱码问题

表单元素的enctype属性 表单的enctype属性指定的是表单数据的编码方式,该属性有如下3个值: application/x-www-form-urlencoded:这是默认的编码方式,它只处理...

struts2 文件下载方式 此法解决下载中文文件问题。不错

在BlogJava上已经有一位作者阐述了文件上传的问题,地址是在Struts 2中实现文件上传,因此我就不再讨论那个话题了。我今天简单介绍一下Struts 2的文件下载问题。 我们的项目名为 str...

struts2使用action方式实现文件下载(支持中文文件名)

【1】支持中文名称文件(源文件中文名称、下载另存为为中文名称)【2】加入session判断,还可进行权限控制 action类: package com.fsti.ssh.action; ...

JSP、Struts2下载中文文件名乱码问题

方案一: 原来处理下载的代码如下:  response.setHeader("Content-Disposition", "attachment; filename=" + java.net....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)