Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371035
  • 博文数量: 28
  • 博客积分: 455
  • 博客等级: 下士
  • 技术积分: 445
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 11:10
文章分类

全部博文(28)

文章存档

2016年(5)

2014年(1)

2013年(10)

2011年(7)

2010年(5)

我的朋友

分类: Web开发

2013-11-14 17:09:22

jquery form插件ajaxSubmit上传中文文件名,Struts2接受文件名乱码


归根结底还是编码的问题
简单的解决办法就是,在客户端ajaxSubmit提交的时候,把可能含中文文字的输入都用encodeURI函数编码一下
代码片段:

点击(此处)折叠或打开

  1. $('#edit-form').ajaxSubmit({
  2.     dataType: 'json',     
  3.     data: { imgDesc: encodeURI($('#imgDesc').val()), fileName: encodeURI( $('#mainImage').val()) }
  4. ...
  5. })

其中#imgDesc是输入的描述,#mainImage其实就是文件名全路径


服务器端处理的时候,先解码即可

点击(此处)折叠或打开

  1. java.net.URLDecoder.decode(fileName,"UTF-8")
  2. java.net.URLDecoder.decode(imgDesc,"UTF-8")


同理,如果使用uploadify插件上传文件的话

中文文件名也用类似方法处理,客户端代码片段如下:

点击(此处)折叠或打开

  1. $("#mainImage").uploadify({
  2.     'swf' : '../js/uploadify-3.2.1/uploadify.swf',
  3.     'uploader' : 'uploadify-image.action',
  4.     'buttonText' : '选择照片',
  5.     'fileObjName': 'mainImage',
  6.     'fileTypeDesc' : '图片文件',
  7.     'fileTypeExts' : '*.gif; *.jpg; *.png; *.bmp',
  8.     'onUploadStart' : function(file) {
  9.        $('#mainImage').uploadify('settings','formData', { fileName: encodeURI(file.name) })
  10.     }
  11. });


服务器端也是同样的处理,先解码:

点击(此处)折叠或打开

  1. java.net.URLDecoder.decode(fileName,"UTF-8")


阅读(5148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~