文件上传版本控制问题的思路

1.web端上传文件A到服务器
2.从服务器下载文件A到本地
3.本地修改完文件A再次上传到服务器,服务器验证该文件是否是文件A,并且是否已经修改过

请问这种问题的解决思路是什么呢?求大神给个思路~

==========分割线==========

我走过的一些弯路:
我的思路是给每个上传的文件添加一个自定义文件属性fileId,然后通过该id来判断是否是同一个文件,再通过md5来判断是否已经修改过。具体的实现方式有如下:
1.用js来判断
我试图在客户端用js读取文件的自定义属性,将属性作为表单一部分提交到服务器进行验证,但是发现并不可行,因为js无法读取文件的自定义属性
2.服务器端验证
先把文件上传到服务器,在服务器端读取文件的自定义属性,再进行进一步的验证。但是发现,网页端上传的文件post到服务器端后,是以流的形式读取与保存的,将流保存为文件的时候,它只读取了流中的文件主体内容,而无法读取流中的文件属性(这里我还抱有怀疑,如果不对欢迎指出),所以也无法实现

我使用的文件属性读写工具:
DSOFile,点击查看


慕田峪4524236
浏览 401回答 1
1回答

泛舟湖上清波郎朗

肯定是没有弄清楚需求。提需求的人根本不了解技术细节吧,他就随便一举例“一定要确保文件就是原来那个文件修改来的”,实际上文件为何非要限定从这里下载的呢?只要给你的文件符合你的要求就行了,你管它哪里来的。我建议你重新确认需求。另外你的文件是什么文件?改写工具是什么?如果是无格式文本文件,基本不可能识别出来我怎么修改这文件的,是重写的还是修改的。如果是有格式可以添加一些注释 而又约定必须保留这些内容的情况下,你可以往里面加令牌吧。 下载的时候我塞进个令牌,上传来的时候我检查令牌就行了。二进制文件和专用修改工具就可以根据设计保留这个。如果是文本文件,那令牌也就明白着写在人看得见的地方,他删还是改还是保留令牌文本,就靠人的执行力了。像你这需求,我的看法就是它是无意义的。你要是真想确保必须是原文件改来的,你直接提供网页 在网页上通过服务器修改内容就行了,何必要下载修改再上传呢。 你既允许我修改 又要检查是不是那个文件,那怎么可能? 我作为人告诉你这就是你那个文件,你这机器就得认,完全一致说明我没修改,不一致说明我改了,我就是完全把它改成别的内容(或是就是给你了个别的文件),我说这是那个文件,你机器还想反抗不成。 一句话,重新确认需求,最好的实现就是通过网页和服务器修改,不让下载修改再上传。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript