`

设置文件下载时客户端显示的附件中文名

阅读更多
/**
   * 设置下载文件中文件的名称
   * 
   * @param filename
   * @param request
   * @return
   */
  public static String encodeFilename(String filename, HttpServletRequest request) {
    /**
     * 获取客户端浏览器和操作系统信息
     * 在IE浏览器中得到的是:User-Agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; Alexa Toolbar)
     * 在Firefox中得到的是:User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
     */
    String agent = request.getHeader("USER-AGENT");
    try {
      if ((agent != null) && (-1 != agent.indexOf("MSIE"))) {
        String newFileName = URLEncoder.encode(filename, "UTF-8");
        newFileName = StringUtils.replace(newFileName, "+", "%20");
        if (newFileName.length() > 150) {
          newFileName = new String(filename.getBytes("GB2312"), "ISO8859-1");
          newFileName = StringUtils.replace(newFileName, " ", "%20");
        }
        return newFileName;
      }
      if ((agent != null) && (-1 != agent.indexOf("Mozilla")))
        return MimeUtility.encodeText(filename, "UTF-8", "B");

      return filename;
    } catch (Exception ex) {
      return filename;
    }
  }

 

2
0
分享到:
评论

相关推荐

    java导出excel文件并且下载到客户端(包括解决中文乱码).txt

    为了确保文件名中的中文字符能够正确显示,我们在设置文件名时进行了编码转换: ```java response.setHeader("Content-disposition", "attachment; filename=" + path); ``` 其中,`path`是通过`URLEncoder.encode(...

    struts2实现文件下载及中文名字转换解决方案

    在本文中,我们将深入探讨如何使用Struts2框架实现文件下载功能,尤其是处理包含中文名字的附件。Struts2是一个流行的Java Web开发框架,它提供了丰富的功能,包括处理HTTP请求、表单提交以及数据绑定等。对于文件...

    文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf

    文件下载时 response.setHeader() 下载中文文件名乱码问题可以通过使用 email 附件名编码方法对文件名进行编码来解决。同时,需要正确设置 Content-Type 和 Content-Disposition 头字段来确保文件下载正确。

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

    首先,我们需要了解HTTP协议在处理文件下载时的角色。当用户请求下载一个文件时,服务器需要设置响应头来指示浏览器如何处理这个响应。在JSP中,我们通常使用`response`对象来设置这些头信息。`response....

    wordpress上传中文名附件页面无法打开问题处理(绝对有效)

    ### WordPress上传中文名附件页面无法打开问题处理 在WordPress中,有时用户会遇到上传中文命名的附件时,页面无法正常打开的问题。这个问题主要是由于PHP默认对中文等非ASCII字符支持不佳造成的。为了解决这一问题...

    servlet中使用smart实现上传和下载实例(解决中文名问题)

    文件下载时,我们需要创建一个HTTP响应,设置适当的响应头,如Content-Type表示文件类型,Content-Disposition用于指示浏览器如何处理响应内容,例如,设置为"attachment; filename=xxx"可以让浏览器以附件形式下载...

    fckeditor(java版-解决中文附件名称乱码问题)

    例如,上传设置可能需要指定正确的编码格式,以确保接收中文附件名称时不出现乱码。 3. **HTTP上传协议**:当通过FCKeditor上传文件时,实际上是通过HTTP协议进行的。HTTP协议默认使用ISO-8859-1编码,如果上传的...

    struts2.2.1文件下载及中文乱码问题解决.pdf

    `contentDisposition`参数设置了文件的处理方式,`attachment`表示作为附件下载,`filename`则指定了保存的文件名。 在Action类`FileDown`中,我们需要定义`fileName`属性和对应的getter、setter方法,以及`...

    php实现文件下载(支持中文文名)

    最重要的是`Content-Disposition`头,它告诉浏览器以附件形式下载文件,并设置了文件名,这里使用了原始的中文文件名。 最后,实际的文件读取和发送过程。通过`filesize()`获取文件的大小,然后用`fopen()`打开文件...

    .net从服务器下载文件中文名乱码解决方案

    《.NET从服务器下载文件中文名乱码的解决策略》 在.NET开发中,服务器向客户端提供文件下载服务是一项常见的任务。然而,当文件名包含中文字符时,由于编码问题,可能会导致文件名显示为乱码。本文将深入探讨这个...

    ASP.NET页面下载软件或文件源码

    - **作用**:设置`Content-Disposition`响应头,告诉浏览器将此请求视为一个附件,并指定下载后的文件名为原文件名。这里使用了`UrlEncode`方法对文件名进行URL编码,以确保文件名中的特殊字符能够被正确传输。 ###...

    PHP附件下载中文名称乱码的解决方法

    本文详细介绍了PHP附件下载时中文名称乱码问题的解决方法,并深入分析了乱码产生的原因以及如何通过编码转换来解决。 中文乱码问题的产生主要是由于客户端和服务器端的编码方式不一致导致。在Web开发中,我们通常...

    12_传智播客张孝祥java邮件开发_中文附件名_回信地址_友好名称等技巧.rar

    本课程聚焦于张孝祥老师的讲解,主要探讨如何使用Java进行邮件开发,包括处理中文附件名、设置回信地址以及实现友好的邮件显示名称等技巧。 首先,JavaMail API是Java平台上的标准邮件接口,它提供了发送和接收电子...

    比较好的文件下载类,直接可用

    此代码段展示了一个名为`downloadFile`的方法,用于处理文件下载逻辑。 #### 方法签名解读 ```java public static int downloadFile(String filePath, HttpServletResponse response) ``` - **public**:方法的访问...

    上传附件

    在Java Web开发中,上传附件是一个常见的功能,用于允许用户提交文件到服务器。本示例中的代码是基于一个名为`SmartUpload`的第三方库来实现文件上传的。`SmartUpload`库简化了处理文件上传的过程,它提供了处理文件...

    response中文乱码解决的代码

    在处理文件下载时,如果文件名包含中文字符,服务器需要确保将文件名以正确的编码方式发送给客户端,否则客户端可能无法正确解析文件名。 下面是一段示例代码,演示了如何使用Servlet来实现文件下载并解决中文...

    smallupload上传和下载Demo

    对于下载,我们可以创建一个Servlet,读取服务器上的文件内容,设置合适的响应头,然后通过`HttpServletResponse`的`getOutputStream()`方法将数据流回客户端。 在处理上传时,还要注意一些安全问题,如防止大文件...

    java下载时文件名乱码

    在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供解决策略。 首先,我们需要了解HTTP协议中的编码规则。在HTTP响应头中,有一个名为`Content...

    JSP无组件下载代码

    具体做法是通过`response`对象设置`Content-Disposition`和`Content-Type`响应头,其中`Content-Disposition`的值通常设置为`attachment`,表示附件,后面跟上`filename`参数指定下载文件名;`Content-Type`则根据...

Global site tag (gtag.js) - Google Analytics