用jsp实现中文名文件下载,可是下载到的文件都是空白文件,为什么呢?要怎么解决?

我的代码如下:<%java.io.BufferedInputStreambis=null;java.io.BufferedOutputStreambos=null;Str... 我的代码如下:
<%
java.io.BufferedInputStream bis=null;
java.io.BufferedOutputStream bos=null;
String filename=request.getParameter("downname");
filename=new String(filename.getBytes("iso8859-1"),"gb2312");
try{
//String filename=request.getParameter("filename");
//filename=new String(filename.getBytes("iso8859-1"),"gb2312");
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));
bis=new java.io.BufferedInputStream(new java.io.FileInputStream(config.getServletContext().getRealPath("resource/" + filename)));
bos=new java.io.BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
}
catch(Exception e){
e.printStackTrace();
}
finally {
if (bis != null)bis.close();
if (bos != null)bos.close();
}
%>

没有悬赏了真的很对不起,但是真的很想学到这方面的知识,多谢了
展开
 我来答
乌微月2S
2012-09-03 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2872万
展开全部
空白说明路径有问题。
2个地方可能出现问题,一个是filepath,一个是字符集转换filename。
基本上就是config.getServletContext().getRealPath("resource/" + filename)
这个的问题,你把这个打印出来看看。是不是你的路径和名称。
changshan518
2012-08-28 · TA获得超过108个赞
知道答主
回答量:198
采纳率:0%
帮助的人:80.3万
展开全部
文件下载有时候很麻烦,系统不同也有可能造成,这台机器可以那台不可以的情况,无非就是编码问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式