我们知道所谓的在线编辑其实就是从服务器下载,等使用者修改完成后,再上传(回传)的这样一个过程。过程中文件下载容易实
现,下载后在客户端打开编辑也容易,难一点的就在上传这一步。
但上传又可以采用http或ftp上传两种方式,如果用ftp上传方式,那就比较简单,但要代码中暴露ftp上传的帐户或密码,并且
上传过程无法控制(比如我想把文件放到某一目录下,重名怎么处理,把文件路径存入数据库什么的),安全性也低,不太推荐使用。
我选用的是http上传的方式,http上传的方法也有几种,一种是用winsock模拟表单提交,还有其他的一些控件等,我是用winsock试
的,可怎么也不能实现二进制文件的上传(会的朋友请指教),文本文件上传倒是没有什么问题。因此最后折中选择了用传统方式的上
传,即web表单上传的方式。这样做也有好处,一个是可以使用原有应用系统的上传方式,即原有应用系统的表单上传是怎么传的,
传上去是怎么处理的,完全由应用系统自己决定,控件完全与业务应用解藕。即使是用upfile.jsp上传的,还是upfile.asp上传的,
还是控件上传都没有问题。同时我也省事,不用写这部分上传的代码了,只需要指定上传文件的url就可以了。
控件使用的流程是,打开服务器文档,调用客户端本地关联程序,修改,关闭程序,然后点击保存按钮,即可完成对服务器文档
的“在线”编辑。
目前实现的是比较简单的功能:
1.自动识别服务器文档类型,并自动调用关联程序进行编辑
2.主要是针对word文档写了不少的支持
>以只读方式打开文档
>支持保存文档,页面设置,打印,留痕,插入批注,电子印章(自己另做有的另一个印章生成器,需用此印章生成器生成电子
印章),文档保护,检查文档完整性。
>可以限制打印的张数
>可以防止提交编辑的文档覆盖别人刚修改过的文档,即保证使用者下载修改的都是文档的最新版本,如果提交的版本比服务
器的旧,则拒绝提交,需要重新刷新页面重新下载最新的版本。
>防止文档被非法修改,可以加盖电子印章,印章中包启印章名称,使用者名称,职务,印章密码等信息。
>点击校验文档按钮,即可知道文档是否被非法修改过,以方便使用者做出相应处理。
>可以指定工具条的任一按钮是否可用。
>可以更新指定的doc内容,用于文档模板处理。
如:doc模板内有$T1,$T2的字符变量,可以以方法 UpdateUserData 进行数据更新,当然那些数据也是随控件页面下载获得的。具体使用请看控件的使用文档。
3.其实主要是针对电子政务的需求来开发的,有新的需求再进行新版本的开发和升级。
4.可以编辑txt,jpg,xls等其他文档,如用记事本编辑txt,excel编辑xls,photo编辑jpg等等。
5.word2000可能不支持,我是用word2003的库进行调试的
6.电子印章是加密的,不过是自己写的,不是什么ca之类的,当然你也可以把电子印章考到u盘了,而且打开电子印章是需要你设定的密码的。
7.当然下载后,有人会说我可以绕过你的控件而直接编辑下载的临时文档,当然,这也考虑到了,已经防止了这种事情的发生。要是万一万一万一他用什么手段可以做到了,也逃不过文档校验的这关的,别忘了电子印章还有密码等,电子印章这里只针对word来说的。
不知道有没有人想需要这个我做的控件? 如果需要的人多的话,就整理后再放上下载地址,是全免费的,不要一分钱,没什么人想要的话就自己用了。