解决Struts2文件下载文件名中文乱码

本文介绍如何使用Struts框架配置导出Excel文件的过程。包括Struts配置文件中stream类型的result配置,以及Java代码中如何生成带时间戳的文件名,并根据不同浏览器类型设置下载文件名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts配置:


	<result name="exNoticeToExcel" type="stream">
		<param name="contentType">application/vnd.ms-excel;charset=ISO8859-1</param>
		<param name="inputName">inputStream</param>
		<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
		<param name="bufferSize">5120</param>
	</result>


Java key code:


//使用系统时间生成字符串
	Date date = new Date();
	String nowStr = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
	String fileNameChine="通知详情导出"+nowStr+".xls";
	if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {
		this.downloadFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileNameChine.getBytes("UTF-8")))) + "?=";   
	} else{
		this.downloadFileName = java.net.URLEncoder.encode(fileNameChine, "UTF-8");
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值