有关 点聚公司 weboffice 组件使用过程中的一些问题
weboffice 在初始化完成后,需要加载 word 文档。 加载文档的方法为
LoadOriginalFile(arg1, arg2)
该方法有两个参数需要传入, arg1 代表要加载的word文档资源的位置,arg2 代表要加载的文档是哪种类型,如doc 。
arg1 的值有两种形式 :
第一种形式,可以传入文件系统的绝对路劲,如E:\BaiKe\programes installers\apache-tomcat-20130204-6.0.35\apache-tomcat-6.0.35\webapps\gagb\webo\test.doc
第二种形式,可以传入http方式的url,该url指向对应的word文档, 如 http://localhost:8080/gagb/download_inte.action?inteId=12312312312312
但是,使用第一种形式加载 文档时, weboffice 组件会将arg1进行 uri 编码, 编码方式和javascript中的encodeURI方法一致。
如, 某一个word文档的绝对路径如下:
E:\BaiKe\programes installers\测试.doc
weboffice 探测到 arg1 对应的值 是 文件系统的绝对路径,就会对arg1的值进行编码,变为如下的值:
E:BaiKeprogrames%20installers%E6%B5%8B%E8%AF%95.doc
可是weboffice依据此路径查找文件并加载时,肯定是找不到对应的文档的。
所以,使用第一种方式加载文档,避免不了文件名中包含中文的文档无法加载的问题。
然后,就决定使用第二种方式加载文档。
以xxx模块为例, 加载情报文档时,arg1 传入 如下的值:
http://localhost:8080/gagb/xxxxxx.action?inteId=12312321323
在后台,接收到这样的请求后,根据inteId查找对应的文档的存放路径,不管inteId对应的word文档名是否包含中文,找到该文档后,构造输出流,
响应给调用者即可。
另外,再说一个自己的分享,使用weboffice组件加载文档时,尽量不要使用第一种方式,一定要是用第二种方式。
暂时写这么多,有什么问题和疑问,希望各位多多交流。