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

主题:Uploadify上传插件中文乱码问题解决方法

阅读更多

在使用Uploadify插件进行文件上传时,当上传的文件名包含中文时,则在后台读取时,会出现乱码问题。之前一直以为是插件自带Flash上传器中的代码没有对中文编码问题进行处理,但经过反复试验发现,与Flash无关。
出现乱码是因为Flash发送数据是以UTF-8的格式进行编码,而后台接受时没有做出处理导致的。下面的代码是后台文件接收的Servlet代码,其中的

Java代码 复制代码
  1. upload.setHeaderEncoding("utf-8");  
upload.setHeaderEncoding("utf-8");



即表示使用utf-8的编码格式处理数据,这样一来,上传中文文件名则不会出现乱码问题

Java代码 复制代码
  1. ServletContext servletContext = this.getServletConfig().getServletContext();   
  2. ApplicationContext appContext = WebApplicationContextUtils   
  3.         .getWebApplicationContext(servletContext);   
  4. String uploadFolder = (String) req.getParameter("folder");   
  5. String savePath = this.getServletConfig().getServletContext().getRealPath(uploadFolder);   
  6. savePath = savePath + "\\";   
  7.   
  8. File f1 = new File(savePath);   
  9. if (!f1.exists()){   
  10.     f1.mkdirs();   
  11. }   
  12.   
  13. DiskFileItemFactory fac = new DiskFileItemFactory();   
  14. ServletFileUpload upload = new ServletFileUpload(fac);   
  15. upload.setHeaderEncoding("utf-8");   
  16. List fileList = null;   
  17. try{   
  18.     fileList = upload.parseRequest(req);   
  19. catch (FileUploadException ex){   
  20.     return;   
  21. }   
  22. Iterator<FileItem> it = fileList.iterator();   
  23. String name = "";   
  24. String extName = "";   
  25. while (it.hasNext()){   
  26.     FileItem item = it.next();   
  27.     if (!item.isFormField()){   
  28.         name = item.getName();   
  29.         long size = item.getSize();   
  30.         String type = item.getContentType();   
  31.         if (name == null || name.trim().equals("")){   
  32.             continue;   
  33.         }   
  34.         //扩展名格式:.flv   
  35.         if (name.lastIndexOf(".") >= 0){   
  36.             extName = name.substring(name.lastIndexOf("."));   
  37.         }   
  38.         File file = null;   
  39.         String format = "yyyyMMddHHmmss";   
  40.         Random r = new Random();   
  41.         do{   
  42.             //生成随机文件名:日期+四位随机数   
  43.             int rannum = (int) (r.nextDouble() * (9999 - 1000 + 1)) + 1000;   
  44.             name = DateUtil.parseString(new Date(), format);   
  45.             name = name + rannum;   
  46.             file = new File(savePath + name + extName);   
  47.         } while (file.exists());   
  48.   
  49.         File saveFile = new File(savePath + name + extName);   
  50.         try{   
  51.             item.write(saveFile);   
  52.         } catch (Exception e){   
  53.             e.printStackTrace();   
  54.         }   
  55.     }   
  56. }   
  57. resp.getWriter().print(name + extName);  
分享到:
评论
2 楼 a498740995 2012-04-23  
fileItem 里获取的文件类型是:application/octet-stream
怎么改啊?
1 楼 a498740995 2012-04-23  
我单步跟了下,Flash发送数据是以iso-8859-1格式进行编码,怎么改能utf-8呢?
中午按钮已经解决了。。

相关推荐

    解决中文按钮乱码的jquery uploadify上传插件

    uploadify是一款基于jQuery库的上传插件,但很可惜的是无论你怎么设置参数buttonText ,它的中文按钮都会出现乱码的情况。本资源修改了源码的编码方式,从根本上避免了中文按钮乱码的问题。若要知道乱码原因,及免分...

    uploadify_中文按钮乱码.zip

    《uploadify中文按钮乱码问题解析与解决方案》 在网页开发中,经常需要用到文件上传功能,Uploadify是一款广泛使用的jQuery插件,它提供了强大的文件上传功能,包括多文件选择、进度条显示等。然而,当我们在使用...

    uploadify批量上传(已解决中文乱码问题)

    总的来说,这个解决方案提供了一种批量上传文件的方法,同时解决了中文文件名的乱码问题,适用于需要处理多语言内容的网站或应用。通过深入理解Uploadify的工作原理和字符编码机制,你可以更有效地集成并定制这个...

    ASP.NET jquery.uploadify文件上传控件测试项目(已解决中文乱码)

    这个测试项目已经解决了中文乱码问题,这意味着它能够正确处理含有中文字符的文件名,这对于中文环境下的应用来说至关重要。 首先,我们需要理解jQuery.uploadify的工作原理。它利用HTML5的File API和Ajax技术,...

    jquery uploadify scriptData 中文乱码

    在使用jQuery Uploadify插件时,用户可能会遇到“scriptData”参数中的中文数据出现乱码的问题。这通常是因为字符编码不一致导致的。Uploadify是一个非常流行的文件上传插件,它允许用户通过异步方式上传文件,同时...

    jquery.uploadify上传文件

    总之,jQuery Uploadify是一个强大且灵活的文件上传解决方案,它简化了多文件上传的实现过程,同时提供了丰富的自定义选项。通过合理的配置和适当的服务器端处理,你可以轻松地在项目中集成这一功能,提升用户的交互...

    jquery.uploadify-v2.1.4.zip

    《jQuery Uploadify插件v2.1.4:解决中文按钮乱码问题及深度解析》 在Web开发中,文件上传功能是不可或缺的一部分。jQuery Uploadify是一款强大的JavaScript插件,它使得文件上传变得简单而优雅。然而,在处理中文...

    上传插件uploadify

    Uploadify是一款广泛应用于Web开发中的文件上传插件,尤其在处理多文件上传和大文件上传时表现出色。这款插件采用JavaScript和Flash技术,能够提供用户友好的界面和高效的文件上传体验。它允许用户批量选择文件,...

    uploadify-中文语言错误提示

    Uploadify 是一个基于jQuery的文件上传插件,它允许用户在网页上实现便捷的多文件上传功能。在处理中文语言环境中,Uploadify 的默认设置可能无法显示中文错误提示,这可能会给中国用户带来不便。因此,为了实现中文...

    Uploadify3.1参数详解

    需要注意的是,如果未修改`uploadify.swf`文件中的字体设置以及`uploadify.js`文件的编码方式,则使用中文时可能会出现乱码问题。 ##### 6. `checkExisting` (布尔型) - **默认值**: False - **说明**: 当设置为`...

    Uploadify上传文件方法

    以下是对Uploadify上传文件方法及其在ASP.NET中的使用的详细说明: 1. **Uploadify基本使用** - 首先,你需要在HTML页面中引入jQuery库、jQuery EasyUI(可选,用于美化界面)以及Uploadify的JavaScript和CSS文件...

    jQuery uploadify上传文件(JAVA版+Struts2即时预览效果)

    在本文中,我们将深入探讨如何在Java环境下,结合Struts2框架和jQuery的uploadify插件实现文件上传功能,特别是解决中文乱码问题。这个功能对于任何需要用户交互式上传内容的Web应用都是至关重要的。 首先,jQuery ...

    jquery uploadify

    `jQuery Uploadify`是一款基于jQuery的文件上传插件,它提供了友好的用户界面和批量上传功能,极大地提高了文件上传的效率。以下是对该插件及其在ASP.NET环境中实现的详细说明: 1. **下载与安装**: 首先,你需要...

    单文件与多文件上传uploadify控件的java版本

    本主题将深入探讨“单文件与多文件上传”以及如何使用“uploadify控件”的Java版本来实现这一功能。 Uploadify是一款流行的JavaScript插件,它允许用户通过异步方式上传文件,提供友好的用户体验,如进度条显示、多...

    jquery fileupload上传百分比 JAVA版解决中文乱码

    在实际开发中,你可能需要阅读jQuery File Upload的源码来理解其工作原理,或者使用IDE的调试工具来定位和解决问题。同时,可以借助像Eclipse、IntelliJ IDEA等开发工具,它们提供了方便的字符编码设置,以确保在...

    jsuploadify

    在使用Uploadify时,可能会遇到一个问题,即当试图设置中文按钮文本时,按钮显示不正常,通常表现为乱码或无法显示。这个问题通常与字符编码有关。 在JavaScript环境中,尤其是涉及到与Flash交互时,编码问题尤为...

    struts2的上传下载和删除

    这是一个完整的项目并有详细的代码注释。主要功能:1.用Jquery的uploadify插件实现的多文件上传功能;2.用struts2实现对上传文件的下载功能(其中涉及中文乱码的解决)3.删除某个文件下的某个指定的文件。

Global site tag (gtag.js) - Google Analytics