通过jsp下载文件时文件名及文件内容错误问题

本文主要讨论了在使用jsp进行文件下载时遇到的两个问题:1) 文件名在不同操作系统下可能出现乱码,解决办法是根据服务器文件编码类型判断;2) 在Linux服务器上,文件内容包含html代码,解决方案是确保下载代码位于jsp页面的最前面,以避免响应被解释为页面内容。本地Windows环境下表现正常可能与jar包有关。
摘要由CSDN通过智能技术生成

1、文件名乱码问题:

         如果是本地window,文件名是

String fileName = new String(fileName.getBytes("utf-8"),"ISO8859-1");

         如果是linux,文件名是

String fileName = new String(fileName.getBytes("gb2312"),"ISO8859-1");

         总结就是看服务器的文件编码类型进行判断。

2、内容错误问题:

         我遇到的问题是本地下载文件内容正常,linux服务器上下载会把html代码也作为文件内容下载到文件中。

          解决方案是把下载的java代码写到jsp的最开始,下载结束后再编写html代码,因为jsp代码执行顺序是:java>html>js。

          当把response设置为文件后,就会输出流里的内容写到文件里,而不是页面上。

          但是我本地window下载代码不管写到哪里下载内容都是正常的,可能和jar包有关吧,都是玄学,有遇到相同问题的可以试下。

<% 	//获取文件名
	String fileName = request.getParameter("file_name");
	fileName = new String(fileName.getBytes("gb2312"),"ISO8859-1");
	//获取文件路径
	String filePa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值