回 帖 发 新 帖 刷新版面

主题:[求助]servlet实现文件下载的中文乱码问题

最近我为我的小站添加了一个功能模块, 实现上传下载,
上传用fileupload组件实现,已经弄好了,
下载用servlet,但是有问题,就是文件名中如果含有中文字符的话,会出现乱码问题,甚至不能下载,如果不含中文字符,则正常,在网上找了两天了,好像都是解释其中的原理,没有好的实际的解决办法,不知道大家遇到过这种问题没有,
下面是servlet的源码,大家帮我看下
public void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException 
{
    //文件名从请求的jsp页面获得
    String filename = request.getParameter("name");
    
    response.setContentType("application/x-msdownload;charset=GBK");
        
    //设置Content-Disposition头的值为"attachment;filename=文件名"
response.addHeader("Content-Disposition", "attachment;filename="+filename);
        
    //从response中获得一个ServletOutputStream 
    ServletOutputStream sops = response.getOutputStream();
        
    //String s = getServletContext().getRealPath
        
    String fileDir = "F:/临时文件/myclass/";
        
    File Dir = new File(fileDir);
        
    File file = new File(Dir,filename);
  
    InputStream ips = new FileInputStream(file);

    byte[] content = new byte[(int) file.length()];
        
    ips.read(content);
        
    //将文件内容写入到输出流中发送给客户端
    sops.write(content);
    ips.close();
    sops.close();
 } 

回复列表 (共2个回复)

沙发

5555555,怎么没人帮我啊....

板凳


我好像和你做类似的功能,我不知道你那个中文怎么解决,但是我这个能解决。你试试看吧:
http://www.programfan.com/club/post-257966.html
这是今天我刚问的帖子,呵呵。

我来回复

您尚未登录,请登录后再回复。点此登录或注册