`
xingkaistart
  • 浏览: 40133 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JSP实现下载的痛苦[word、excel、下载乱码] 彻底解决 下载文件内容及文件名乱码

阅读更多
1: 建议以后都不要用JSP来实现下载,最好用 servlet的方式来实现。。。
2: 如果一定要实现JSP方式来下载,最好页面内java代码体外(<%%>符号外)不要包含任何内容(空格与回车也不可以有)
3: 当然java代码部分可以有空格 和 回车
4: 具体实现代码如下:
<%@ page language="java" pageEncoding="gbk"%><%@ page import="org.apache.commons.logging.Log,org.apache.commons.logging.LogFactory" %><%
   
   Log log = LogFactory.getLog(this.getClass());
   String name_cn=(String)request.getAttribute("name_cn");///获取文件名称 格式 sss.doc
   String abstrUrl=(String)request.getAttribute("abstrUrl");//获取文件相对或绝对路径,为空走默认!
   
   response.setContentType("application/octet-stream;charset=gbk"); // charset=gb2312
   String ffnmae=new String(name_cn.getBytes("gb2312"),"iso8859-1");//格式化 名称
   response.setHeader("Content-Disposition","attachment; filename="+ffnmae);

   java.io.FileInputStream in = null;   
   java.io.BufferedInputStream binpu = null;
   java.io.BufferedOutputStream bout = null;
   try{     
    in = new java.io.FileInputStream(abstrUrl);   
    binpu = new java.io.BufferedInputStream(in);
    bout = new java.io.BufferedOutputStream(response.getOutputStream());
    byte[] b = new byte[1024];   
    int i = 0;   
    while((i = binpu.read(b,0,b.length)) > 0){   
     bout.write(b, 0, i);   
    }       
    bout.flush(); 
    //要加以下两句话,否则会报错    
    out = pageContext.pushBody(); 
    response.flushBuffer();
    out.clear();   
   }catch(Exception e){   
    log.error("下载错误,错误URL:"+abstrUrl, e);
   }finally{   
    if(in != null){   
     try {
      in.close();
     } catch (java.io.IOException e) {
      log.error("关闭文件错误", e);
     }  
     in = null;   
    }  
    if(binpu != null){   
     try {
      binpu.close();
     } catch (java.io.IOException e) {
      log.error("关闭输入流错误", e);
     }    
     binpu = null;   
    }  
    if(bout != null){   
     try {
      bout.close();
     } catch (java.io.IOException e) {
      log.error("关闭输出流错误", e);
     }   
     bout = null;   
    }  
   }
%>
分享到:
评论

相关推荐

    jsp实现文件下载与中文文件名乱码问题解决

    本文将深入解析如何在JSP中实现文件下载,并解决中文文件名乱码的问题。 首先,我们需要了解HTTP协议在处理文件下载时的角色。当用户请求下载一个文件时,服务器需要设置响应头来指示浏览器如何处理这个响应。在JSP...

    使用JSP下载Word和Excel文件

    当你需要让用户从网站上下载Word或Excel文件时,JSP可以扮演关键角色。本篇将详细介绍如何利用JSP实现这一功能,包括核心知识点、步骤解析以及相关的编程技巧。 一、JSP下载原理 在JSP中,我们通常通过Servlet来...

    使用jsp下载excel文件

    本文档将详细介绍如何使用Java Server Pages (JSP) 实现从服务器端下载Excel文件到客户端的过程。 #### 二、准备工作 1. **环境配置**: - Java 开发工具包 (JDK) - Apache Tomcat 或其他支持 JSP 的 Web 服务器...

    多文件上传例子(解决中文乱码)

    多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...

    Jsp乱码解决方案 word文档

    **解决JSP乱码的策略** 1. **设置JSP页面编码**:在JSP文件顶部添加`;charset=UTF-8" language="java" %&gt;`,指定页面编码为UTF-8。 2. **修改服务器配置**:在Tomcat的`server.xml`文件中,找到`Connector`标签,...

    jspsmartupload-解决中文乱码

    最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...

    ( response.setHeader()下载中文文件名乱码

    ( response.setHeader()下载中文文件名乱码问题

    不同浏览器上中文文件名的下载乱码问题

    不同浏览器上中文文件名的下载乱码问题 浏览器IEChromeSafariOpera 浏览器能正确识别的编码格式

    jsp SmartUpload 中文乱码问题解决.docx

    jsp SmartUpload 中文乱码问题解决是指在使用 jsp 的 SmartUpload 组件进行文件上传下载时,遇到中文乱码问题的解决方法。在这篇文章中,我们将介绍如何解决 jsp 中 SmartUpload 中文乱码问题。 一、上传 在使用 ...

    JSP乱码 N种解决方案

    本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...

    jsp实现下载excel,word,pdf,jgp,gif,xml,js过滤器实现文档.docx

    标题中的“jsp实现下载excel,word,pdf,jpg,gif,xml,js过滤器实现文档.docx”描述了一个使用JavaServer Pages(JSP)技术来处理文件下载的问题,特别是涉及了如何解决在Tomcat和Resin服务器上下载中文文件名时出现的...

    [jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题

    标题中的“jspSmartUpload上传中文文件名乱码问题”是一个常见的技术挑战,特别是在处理Web应用程序时,特别是那些涉及用户上传文件的场景。JSP Smart Upload是早期流行的一个用于Java Web应用的文件上传组件,它...

    jsp文件的上传和下载

    本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理。下面我们将深入探讨这个主题。 首先,文件上传通常涉及到HTTP协议中的multipart/form-data类型表单。在JSP中,我们...

    jsp实现下载excel,word,pdf,jgp,gif,xml,js过滤器实现文档.pdf

    标题中的“jsp实现下载excel,word,pdf,jpg,gif,xml,js过滤器实现文档.pdf”描述了一种使用JavaServer Pages(JSP)技术来处理文件下载的方法,特别是针对Excel、Word、PDF、JPEG、GIF、XML和JS等不同类型的文件。...

    jspsmart包解决上传与下载乱码问题

    通过修改源码,解决了上传与下载时候的乱码问题,

    Struts2资源文件在jsp页面中显示乱码解决

    该插件不仅能解决properties文件在编辑器中的乱码问题,还能确保JSP页面正确显示资源文件中的内容,而无需手动编码转换。 安装步骤如下: 1. 在Eclipse中,依次选择`Help` &gt; `Software Updates` &gt; `Find and ...

    jsp文件上传,解决中文乱码

    接下来,我们将深入探讨如何解决`JSP文件上传`时的中文乱码问题。 首先,我们需要理解文件上传的基本流程。在`JSP`中,通常会使用`&lt;form&gt;`标签的`enctype="multipart/form-data"`属性来定义一个支持文件上传的表单...

    jspsmart上传下载文件实例中文

    5. **处理编码问题**:JSpsmart实例中特别注意了文件名乱码问题,确保文件名在上传和下载过程中保持正确。 ### 二、JSpsmart工作流程 1. **初始化SmartUpload对象**:在JSP或Servlet中创建SmartUpload实例,并进行...

    jspsmartupload上传组件解决中文标题乱码

    jspsmart上传组件,解决中文标题乱码,已修改源码为utf-8

    Struts实现文件下载中文乱码解决方案

    在处理文件下载时,可能会遇到中文文件名乱码的问题,这主要是由于字符编码不一致导致的。以下是对这个问题的详细分析及解决方案: 首先,问题出现在文件列表的展示和下载链接的生成过程中。在Action中,`request....

Global site tag (gtag.js) - Google Analytics