下载excel文件名字乱码问题处理

原创 2016年08月29日 15:02:40
package com.dreamwin.cclib.naga.view;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dreamwin.statis.StartUp;

/**
 * 输出文件视图
 * 
 * 
 * @author niuxx
 * 
 */
public class FILEView extends BaseView implements View {

    /** 需要输出的文件路径 */
    private String filePath;

    /**
     * 带模板路径的构造器
     * 
     * @param templateName
     *            模板路径
     */
    public FILEView(String filePath) {
        this.filePath = filePath;
    }

    public void render(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        super.render(request, response);
        // response.setCharacterEncoding("UTF-8");
        String cStr1 = filePath;
        // cStr1 = URLDecoder.decode(filePath,"UTF-8");
        String view_name = filePath.substring(filePath.lastIndexOf("/") + 1);
        String cFilePath;
        cFilePath = StartUp.deployDirectory + cStr1;
        File file = new File(cFilePath);
        if (!file.exists()) {
            return;
        }
        File downFile = new File(cFilePath);
        response.setContentType("binary/octet-stream;charset=UTF-8");
        // response.setContentType("application/x-msdownload");
        // 判断浏览器版本,设置相应编码格式
        String userAgent = request.getHeader("User-Agent");
        System.out.println(userAgent);
        userAgent = userAgent.toLowerCase();
        if (userAgent.indexOf("msie") != -1) {
            //response.setHeader("Content-Disposition", "attachment; filename=\""
            //    + URLEncoder.encode(view_name, "UTF-8") +"\"");
        response.setHeader( "Content-Disposition", "attachment;filename="  + new String(view_name.getBytes("gb2312"), "ISO8859-1" ));
        } else {
            String fileName = new String(view_name.getBytes("UTF-8"),
                    "ISO8859-1");
            response.setHeader("Content-Disposition", "attachment; filename=\""
                    + fileName + "\"");
        }
        ServletOutputStream out = response.getOutputStream();
        InputStream is = new FileInputStream(downFile);
        byte[] bytes = new byte[1024];
        while (true) {
            int chunk = is.read(bytes);
            if (chunk == -1) {
                break;
            }
            out.write(bytes, 0, chunk);
        }
        is.close();
        is = null;
        out.flush();
        out.close();

    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

}

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

相关文章推荐

关于java文件下载文件名乱码问题解决方案

关于java文件下载文件名乱码问题解决方案 做为一名程序员,大家应该都遇到过乱码的问题吧!这篇文章是自己解决关于关于java文件下载文件名乱码问题的处理: String fileName = "下...
  • fanyuna
  • fanyuna
  • 2015年10月28日 18:14
  • 3925

下载excel文件名字乱码问题处理

package com.dreamwin.cclib.naga.view; import java.io.File; import java.io.FileInputStream; impo...

【Excel】java 导出Excel 中文文件名乱码不显示问题

在使用Java 导出Excel 等报表时,对于中文文件名,会出现不显示中文或者中午乱码的问题。此问题的解决方案比较简单,将要返回的中文文件名做iso-8859-1 转码即可。 【问题...

解决ie和其他浏览器poi下载excel文件名乱码

使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,...
  • dczjzz
  • dczjzz
  • 2015年11月12日 17:40
  • 982

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java下载excel文件在firefox中文件名为乱码

转载自:http://blog.sina.com.cn/s/blog_554d2e6101011bun.html 现象:使用jboss开发的下载excel文件功能,使用中文文件名,在IE里面正常...

Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

问题描述:         对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出...

java文件导出文件名乱码问题解决

在编写excel文件导出程序的时候遇到一个奇怪的问题,就是在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,如何解决 httpServletResponse.se...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java 下载文件乱码解决

@Get("/downLoadDemoFile1")     public String downLoadDemoFile1(Invocation inv)  {                   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:下载excel文件名字乱码问题处理
举报原因:
原因补充:

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