如何防止多个人同时编辑文件
2008-11-24 10:29
344 查看
控制并发访问文件的思想
在使用ntko office文档控件的时候 ,有可能服务器端不愿意让多个用户同时编辑同一个word文档,当一个用户请求编辑该word文档时使用下图所示的流程就可以解决这个问题.
![](http://dev.ntko.com/admin/support.nsf/db3d376e185b68a148257251006b6e12/85eaffef2b003712482572aa001c7dfb/Body/0.20A?OpenElement&FieldElemFormat=gif)
首先应该在保存文件信息的数据库表中附加以下几个字段(如果没有这样一个表就应该在数据库中建立类似结构的这样一个表):filestate,openner,openedtime分别表示:文件的状态(是否被打开),打开文件的用户,文件被打开时的时间。
要使用上面这个流程来对服务器上的word文档进行访问控制的前提条件是用户必须先登陆才可以请求编辑文件.
图中流程设计思想为:
⑴文件只能被一个用户打开.
⑵用户打开文件的时间超过规定的时间,其他的用户就能够打开该文件并编辑,这时先前打开文件的用户不能保存编辑结果.
⑶用户打开文件的时间超过规定时间,但其他用户没有请求编辑该文件,他依然可以保存.
其实在上面的流程图中还有一种情况没有包含:
当用户直接关闭编辑文档的页面的时候,该用户还拥有对文档的编辑权限,其它想要编辑该文件的用户必须要等到规定的时限过后才可以。这是我们不愿意看到的情况,所以当用户直接关闭该页面的时候,应该向服务器发送一个信息,代表放弃对该文件的编辑权限。服务器收到消息后,重置数据库中该文件记录的3个字段.
在使用ntko office文档控件的时候 ,有可能服务器端不愿意让多个用户同时编辑同一个word文档,当一个用户请求编辑该word文档时使用下图所示的流程就可以解决这个问题.
首先应该在保存文件信息的数据库表中附加以下几个字段(如果没有这样一个表就应该在数据库中建立类似结构的这样一个表):filestate,openner,openedtime分别表示:文件的状态(是否被打开),打开文件的用户,文件被打开时的时间。
要使用上面这个流程来对服务器上的word文档进行访问控制的前提条件是用户必须先登陆才可以请求编辑文件.
图中流程设计思想为:
⑴文件只能被一个用户打开.
⑵用户打开文件的时间超过规定的时间,其他的用户就能够打开该文件并编辑,这时先前打开文件的用户不能保存编辑结果.
⑶用户打开文件的时间超过规定时间,但其他用户没有请求编辑该文件,他依然可以保存.
其实在上面的流程图中还有一种情况没有包含:
当用户直接关闭编辑文档的页面的时候,该用户还拥有对文档的编辑权限,其它想要编辑该文件的用户必须要等到规定的时限过后才可以。这是我们不愿意看到的情况,所以当用户直接关闭该页面的时候,应该向服务器发送一个信息,代表放弃对该文件的编辑权限。服务器收到消息后,重置数据库中该文件记录的3个字段.
相关文章推荐
- 如何在vim中同时编辑多个文件
- 调试SharePoint web part时, 如何可以多个人同时启动调试?
- ubuntu下如何用gedit编辑etc,usr等目录下的文件
- 如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令)
- js和HTML结合(补充知识:如何防止文件缓存的js代码)
- 如何编辑pdf文件 pdf文件可直接编辑吗
- 如何防止文件被备份到iCloud 和iTunes?
- 如何在Dreamweaver编辑和搜索非标准扩展名的文件?
- 如何象VS一样快速编辑Torque的CS文件 - Torque游戏引擎专区 - 水星时代
- VI编辑文件忘记SUDO不退出如何保存
- linux二进制/十六进制日志文件如何查看和编辑
- 三条命令解决Git 如何删除远程服务器文件同时保留本地文件
- 信息编辑,上传文件编辑、删除,用户个人资料修改程序完成 2004-08-21
- Mac系统如何编辑hosts文件
- 如何防止头文件被重复包含、嵌套包含
- PDF 文件如何转换从可以编辑的文本和word
- eclipse 的1个workspace如何同时容纳2个编码不同的项目【Eclipse文件转码插件】
- linux环境下如何编辑察看二进制文件?
- 如何将java编辑的图形化程序编辑为可执行jar文件
- Eclipse中 如何实现 多行同时编辑