我有web service
,我将通过该网络服务访问database
。我将使用Web服务将文本文件保存到我的数据库。
在将文件保存到数据库之前,我想确保文件没有更改。
我不知道该怎么做。可以请任何人解释我如何做到这一点。指定步骤就足够了。
修改
我将我的文本文件作为byte array
传递给Web服务。换句话说,我想确保我发送的所有字节都已经接收到Web服务。(没有损坏也没有数据丢失)。我也控制着Web服务。
答案 0 :(得分:1)
您通常不需要检查,您有不同的通信层,为您做到这一点。
如果包裹在运输过程中丢失,将重新发送,如果损坏,将再次更正/发送。假设您使用的是 TCP / IP协议,您的传输层可确保数据正确传输,而无需您处理。
(这是一个文件而不是流媒体视频, UDP协议可能会损坏数据,这在视频/音频中是可以的)
*只是为了清理:你在应用层。
修改强>
关于TCP / IP的Wikipedia:
此抽象还允许上层提供较低层不提供的服务。虽然最初的OSI模型扩展到包括无连接服务(OSIRM CL),[16] IP并非设计为可靠的,并且是尽力而为的交付协议。这意味着所有传输层实现必须选择是否或如何提供可靠性。 UDP通过校验和提供数据完整性,但不保证交付; TCP通过重新传输提供数据完整性和传送保证,直到接收方确认接收到数据包。
答案 1 :(得分:1)
您应该计算文件的校验和,以便在客户端验证它。
string checkSum=null;
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create()) {
checkSum= BitConverter.ToString(
md5.ComputeHash(Encoding.UTF8.GetBytes(theString))
).Replace("-", String.Empty);
}