Openmeetings上传中文文件名的解决方案.doc

Openmeetings上传中文文件名的解决方案.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Openmeetings上传中文文件名的解决方案

OpenMeetings上传中文文件名的解决方案 OpenMeetings的文件上传功能不支持包含中文字符的文件名,它被自动替换为下换线。比如上传“测试.pdf”,则替换为“____.pdf”。如何解决这个问题呢? 下面列一下详细的修改日志,以及其中碰到的若干问题。 *)Dom4j对中文的支持 *)中文文件的下载 *)ImageMagic对中文文件的处理 详细修改日志: 1、处于安全方面的考虑,OpenMeetings对上传的文件名名称字符进行了过滤,只允许26个大小字母和 10个数字以及下划线。这种过滤对中文文件名简直就是灾难,导致的后果是所有的中文名称都被 替换成了下划线“_____”。我现在的解决方法是不进行过滤,对任意字符都返回true(或许有安全隐患)。 修改 StringComparer.java 文件: 在compareChars函数里 for (int i=0;iallowedChars.length();i++) //if (allowedChars.charAt(i)==inputChar) return true; return true; // XRadish * return false; 2、OpenLaszlo开发环境生成的swf文件(即OpenMeetings的客户端),默认编码都是UTF-8编码,即发送给 OpenMeetings的字符串全部都是UTF-8编码的,我们需要进行转换。 修改 UploadHandler.java 文件: 在service函数里 //trim whitespace String fileSystemName = StringUtils.deleteWhitespace(upload.getFileSystemName(Filedata)); fileSystemName = new String(fileSystemName.getBytes(iso-8859-1), utf-8); // XRadish * iso-8859-1 GBK utf-8 3、下载文件名如果包含中文,则需要转换成GBK编码。 修改 DownloadHandler.java 文件: 在service函数里 httpServletResponse.setContentType(APPLICATION/OCTET-STREAM); requestedFile = new String(requestedFile.getBytes(GBK), iso-8859-1); // XRadish * iso-8859-1 GBK utf-8 ————————————— 4、产生缩略图部分,由于ImageMagic对中文名文件支持BUG很多,所以没有啥好办法。我的是:UTF8正常,GBK不正常。 5、Dom4j支持读包含中文路径的XML文件。用Dom4j解析XML,如果XML文件路径中包含中文, 则直接用SAXReader.read(String path)的话没办法读取,需要加File()定义。 参考资料:/laowantong06/archive/2007/08/24/1757469.aspx 修改 LoadLibraryPresentation.java 文件: import java.io.File; // XRadish + dom4j support gbk 在parseLibraryFileToObject函数里 Document document = reader.read(new File(filePath)); // XRadish * dom4j support gbk ————————————— 6、Dom4j支持写包含中文内容的XML文件。由于FileWriter默认的输出编码是ANSI编码,而Dom4j中的 write方法提供的内容实际是以UTF-8保存的,因此造成了包括中文字符的XML文件无法正常阅读。 所以我改用FileOutputStream类。 修改 CreateLibraryPresentation.java 文件: // XRadish + import org.slf4j.Logger; import org.red5.logging.Red5LoggerFactory; import java.io.FileOutputStream; import org.dom4j.io.OutputFormat; 在generateXMLDocument函数里 //

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档