代码改变世界

如何防止多个人同时编辑文件

2016-04-27 23:58  莫球名堂  阅读(1505)  评论(0编辑  收藏  举报

 

 

 

在使用office文档控件的时候 ,有可能服务器端不愿意让多个用户同时编辑同一个word文档,当一个用户请求编辑该word文档时使用下图所示的流程就可以解决这个问题.

 

首先应该在保存文件信息的数据库表中附加以下几个字段(如果没有这样一个表就应该在数据库中建立类似结构的这样一个表):filestate,openner,openedtime分别表示:文件的状态(是否被打开),打开文件的用户,文件被打开时的时间。
要使用上面这个流程来对服务器上的word文档进行访问控制的前提条件是用户必须先登陆才可以请求编辑文件.

图中流程设计思想为:

⑴文件只能被一个用户打开.
⑵用户打开文件的时间超过规定的时间,其他的用户就能够打开该文件并编辑,这时先前打开文件的用户不能保存编辑结果.
⑶用户打开文件的时间超过规定时间,但其他用户没有请求编辑该文件,他依然可以保存.

其实在上面的流程图中还有一种情况没有包含:当用户直接关闭编辑文档的页面的时候,该用户还拥有对文档的编辑权限,其它想要编辑该文件的用户必须要等到规定的时限过后才可以。这是我们不愿意看到的情况,所以当用户直接关闭该页面的时候,应该向服务器发送一个信息,代表放弃对该文件的编辑权限。服务器收到消息后,重置数据库中该文件记录的3个字段.