ueditor上传文件、图片中文乱码

[摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 致使上面测试只要 谷歌]

百度编辑器1.43 gbk asp 问题

1.firefox3.0下

单图上传 点不了
点多图上传 中间的蓝色按钮(即 点击选择图片)不显示(附件上传没这个问题)

不知道我的火狐吃翔了 导致下面测试只有 谷歌 360 ie8 ie6

  1. 默认情况下 (就是什么设置都没动 直接在iis跑)

1)在 谷歌 360极速模式 功能:多图 附件 (单图上传反而没问题)

出现 部分中文(文件名)乱码 导致有时上传不了

例如 稿.gif

2)ie8 ie6下 功能:单图 多图 附件

中文 文件名的 直接都传不了

没办法自己找原因 网上大神都很忙 没人理会我们还在使用asp的菜鸟屌丝

=================================================================================================
分析了一下 :

后台asp 看了下 都是gbk应该没什么问题 直接把2进制那边直接显示就是乱码 所以应该是前台的问题

单图上传 是 multipart/form-data iframe

多图 附件上传 好像是用的 支持html5的浏览器 ( XMLHttpRequest+FormData+等等)否则就是 flash

====================================================================================================================
先处理谷歌 360的问题 因为方便调试 (对于flash上传为啥会“部分”中文出错,能力有限没明白希望知道的留言告知)

解决: 我想到是在给flash之前 就把文件名 给编码 然后在对返回的json里的文件名解码

1)编码

找啊找啊 找到了 third-party/webuploader/webuploader.js
行2234 this.name = escape(source.name)

由于编辑器加载的是webuploader.min.js
所以要这里 搜索 this.name=a.name||“Untitled” 改成this.name=escape(a.name)||“Untitled”

2)解码

dialogs/image/image.js 多图
行778 title: unescape(data.title),
行779 alt: unescape(data.original),

dialogs/attachment/attachment.js 附件
行558 title: unescape(data.original) || link.substr(link.lastIndexOf(’/’) + 1),

行742 var title = unescape(lis[i].getAttribute(‘data-title’)) || url.substr(url.lastIndexOf(’/’) + 1);

务必清除历史记录后测试
到这里 ie6 8的多图 附件上传也一样都可以了

===============================================================================================

针对360 极速模式(6.3) 上面修改并不能有效 狗日的360上传始终是utf-8 而且好像不让修改filename 倒置这个还是乱码 谷歌就没这个问题蛋疼
解决:我是在后端做文章Uploader.Class.asp 95行下面加

Dim otherfilename
otherfilename = rsFormValues.Item( “name” )
if otherfilename<>"" then filename=otherfilename

这么改的目的是 多图 附件 前端上传的时候 附带一个额外的name字段 储存的就是文件名 这里编码过的 所以用他代替吧 因为单图上传没这个所以判断下不等于空

=====================================================================================================

ie6 ie8 单图上传 中文乱码解决

iframe这种玩意 在ie解析默认什么编码?反正不会继承父级的gbk 这是倒置乱码的关键

然后我找到了单图上传的js代码

行24405 ueditor.all.js 这里是单图上传的开始 读了代码
点击单图上传 构造里了一个iframe 里面有
1)form multipart/form-data input file
2)又一个 iframe 行24432
我开始尝试了各种方法
在form做文章 不行
然后又在iframe里 head之间加 还是不行
知道肯定是这的问题 所有都集中在 主iframe上 一直忽略了 行24432 的iframe
也同样用js在其 head之间加 还是不行
找啊找啊找啊 谷歌被屏蔽后 一直在用百度 想死的心都有
解决:最终认为是两个iframe ie下都必须指定编码
所以分别在 两个iframe上用上了document.charset=“gbk”
行24423 ueditor.all.js 下面加一句
btnIframeDoc.charset=“gbk”;
行24449 ueditor.all.js var iframe = btnIframeDoc.getElementById(‘edui_iframe_’ + timestrap);

 下面加 
  var iframedoc = (iframe.contentDocument || iframe.contentWindow.document);
  iframedoc.charset="gbk";

由于编辑器最终用的是ueditor.all.min.js
搜索 n=g.contentDocument||g.contentWindow.document; 在其后面加
n.charset=“gbk”;
搜索 r=n.getElementById(“edui_iframe_”+a) 在其后面和分号之间加(有个逗号)

,iframedoc=(r.contentDocument||r.contentWindow.document);iframedoc.charset=“gbk”

================================================================================================

另外如果这个用在虚拟空间上 Uploader.Class.asp 211行 改成这样 On Error Resume Next:fs.CreateFolder( path )

此文献给和我一样的菜鸟们 百度编辑器的大神 你们为何让我们很受伤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值