`

FileUpload 1.0 上传文件 中文文件名乱码

 
阅读更多

步入2011年末了,可是公司一直都还是使用的旧平台框架.

struts1.1 很老的框架了,有些细小的bug在开发中会遇到

 

现在记录一下struts1.1中自带的fileupload.jar 1.0版本的问题

该jar组件用于实现文件上传,在实际开发中发现,当上传中文文件名的时候,server端会发生中文文件名乱码的问题.刚开始以为是浏览器的问题,但是使用http监听查看报文收发,截取了字节出来查看,发现浏览器端确实是使用page页面指定的编码进行上传文件名的编码的.

 

这就说明是server端的问题了,跟踪平台代码一路调试,从filter一路调试到公司平台的Action实现,发现是在struts的公共上传处理后,文件名发生的乱码,说明不是filter,也不是公司通用Action造成的.

 

由于struts1.1使用了fileupload组件,于是在网上搜寻了一些相关的资料,均得不到正确的指导,很多人都说直接使用getByte("GBK")来处理乱码,但这种写死编码的风格,不是我喜欢的.于是google中文未果的情况下,无奈到apache官网查看buglist,终于找到了下面的bug:

 

https://issues.apache.org/jira/browse/FILEUPLOAD-13

 

根据文中所说,1.0版本确实是按照平台自己的编码去进行解码的,而不是使用request中指定的编码,此bug在1.1版本中得到了解决,于是下载了1.1.1版本的fileupload,试了一下,终于搞定中文乱码问题了.

 

解决问题后不禁一番感慨,确实公司的平台太落后了,还用着10年前的struts,公司一直依附的银行系统也是一直指定ie6浏览器作为内部系统标准浏览器.有时候看到html5和css3,除了流口水还是流口水...

 

看来要找个机会改造下公司的平台了,最起码把项目组所用到的平台先升级了,太out了

分享到:
评论
1 楼 尹华童鞋 2014-05-05  
亲 本来我狠狠高兴了一下 因为这个问题太相似了 可结果还是让我有拍死人的冲动 要不你给看看 2719648631

相关推荐

    commons-fileupload-1.0上传组件使用实例.

    ### 使用commons-fileupload-1.0进行文件上传的实例及乱码处理 #### 一、commons-fileupload简介 `commons-fileupload`是Apache Commons项目下的一个子项目,它提供了强大的文件上传功能,允许用户轻松地将文件从...

    commons-fileupload-1.0-beta-1.jar、commons-beanutils-1.8.3.jar

    下载File upload的jar包commons-fileupload-1.0-beta-1.jar,并将该文件拷贝到{$TOMCAT}/common/lib目录下(其中{$TOMCAT}为Tomcat的安装目录);  3. 由于Fileupload子项目同时要用到另外一个项目commons-...

    struts2上传下载 解决中文文件名乱码

    通过上述实践和调试,我们已经成功解决了Struts2框架下中文文件名上传和下载的乱码问题。在遇到类似问题时,可以按照这些步骤进行排查和修复。记住,关键在于正确配置Struts2的拦截器、请求编码以及在处理文件名时...

    .net使用FileUpLoad控件上传文件

    本文将详细介绍如何使用 `.NET` 中的 `FileUpload` 控件进行单个文件的上传,并存储文件的相关信息,如文件名、文件格式、文件大小以及存储路径。 #### 基础概念 - **FileUpload 控件**:`FileUpload` 是 ASP.NET ...

    使用fileupload组件实现文件上传功能

    使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...

    commons-fileupload-1.0-beta-1.jar

    commons-fileupload-1.0-beta-1.jarcommons-fileupload-1.0-beta-1.jarcommons-fileupload-1.0-beta-1.jarcommons-fileupload-1.0-beta-1.jar

    fileupload插件 上传文件自带进度条

    "fileupload插件 上传文件自带进度条"是一个专为此目的设计的工具,它为用户提供了一种方便、直观的方式来上传文件,并且在上传过程中显示进度条,提升了用户体验。 首先,我们来详细了解一下fileupload插件。这个...

    commons-fileupload文件上传实例代码

    本教程将深入讲解如何使用`commons-fileupload`库处理中文乱码问题以及实现多文件上传。 首先,`commons-fileupload`是Apache Commons项目的一个组件,专门用于处理HTTP请求中的多部分数据,即文件上传。它与...

    用FileUpload控件上传文件到数据库

    ### 使用ASP.NET中的FileUpload控件将文件上传至数据库 #### 概述 在Web开发中,经常需要处理用户上传的文件,例如头像、文档等。这些文件可能需要存储在服务器的文件系统中,也可能直接存入数据库。本文将详细...

    asp.net fileupload文件上传

    ASP.NET中的FileUpload控件是用于处理用户上传文件的核心组件,尤其在Web应用程序中,它提供了方便的文件上传功能。以下是对标题和描述中涉及的知识点的详细解释: 1. **FileUpload控件的使用**:在ASP.NET环境中,...

    fileupload-1.0-src.tar.gz

    fileupload-1.0-src.tar.gz fileupload-1.0-src.tar.gzfileupload-1.0-src.tar.gz fileupload-1.0-src.tar.gz

    fileUpload文件上传组件例子

    本示例中的"fileUpload文件上传组件例子"提供了一个自定义实现的文件上传组件,旨在帮助开发者理解并掌握这一关键功能的实现方式。 首先,我们需要了解文件上传的基本原理。在HTML中,`<input type="file">`标签...

    C# .NET FileUpload 多文件上传例子

    在这个"C# .NET FileUpload 多文件上传例子"中,我们将探讨两种主要的方法,帮助你理解和掌握这一关键功能。 首先,我们要知道ASP.NET中的`<asp:FileUpload>`控件是实现文件上传的核心组件。它可以允许用户从本地...

    使用commons-fileupload上传文件

    【使用commons-fileupload上传文件】 Apache Commons FileUpload是Apache组织的一个子项目,专注于处理HTTP文件上传。这个组件提供了一个简洁的API,使得开发者能够轻松地在Java应用中处理由浏览器发送的多部分...

    commons-fileupload实现文件上传

    本篇将详细讲解如何使用Commons FileUpload来实现文件上传的功能。 首先,理解HTTP协议中的多部分数据是至关重要的。在HTML表单提交文件时,通常会使用`enctype="multipart/form-data"`属性,此时,数据会被分割成...

    使用commons-fileupload实现的文件上传和下载

    本教程将详细介绍如何利用commons-fileupload库来实现在Java Web应用中的文件上传和下载,并确保在整个过程中不会出现中文乱码问题。 1. **Apache Commons FileUpload简介** Apache Commons FileUpload是一个开源...

    ASP.NET使用fileupload控件上传图片

    `FileUpload`控件是ASP.NET提供的一个用于文件上传的标准控件。它允许用户选择本地计算机上的文件,并将其发送到Web服务器进行处理。`FileUpload`控件非常简单易用,通常配合一个提交按钮一起使用,当用户点击该按钮...

    commons-fileupload 文件上传 图片上传 demo

    `commons-fileupload`库能够解析这种格式的数据,提取出每个部分的信息,包括文件名、文件内容等。 2. **内存和磁盘存储策略**:上传的文件可能会很大,为了防止内存溢出,`commons-fileupload`提供了内存和磁盘的...

    commons fileupload实现文件上传的实例代码

    对于上传的中文文件名乱码,通常需要在接收请求之前设置请求的字符编码,例如`request.setCharacterEncoding("UTF-8")`,确保服务器端处理文件名时使用正确的字符集。 **具体实现** 以下是一个简单的前端HTML表单...

    FileUpload控件自动上传

    在.NET框架中,FileUpload控件是用于处理用户在Web应用程序中上传文件的关键组件。它允许用户选择本地计算机上的文件,并将其发送到服务器进行进一步处理。在这个特定的场景中,我们关注的是FileUpload控件的自动...

Global site tag (gtag.js) - Google Analytics