随便说两句。首先,要发一个“预传输”命令,包括要传输的文件的信息,特别要带上md5(或者别的校验),而并不包括要传输的内容。这时侯服务器要检验是否已经有了此文件,是否md5一致,如果一致,则返回值的状态、告诉客户端就不要再传了、直接结束就行了。如果服务器端没有完全一致的文件,那么客户端可以分块上传。比如说顺序上传,可以把块设置得大一些,例如512k一块(size大一些可以保证高速传送)。如果服务器端原本就有一个文件(服务器使用上一个返回状态告知),那么客户端也可以先传连续好几个块的md5值,然后服务器返回哪些块才需要传送(如果md5一致,就不必传送了)。在服务器端,应该为所有资源文件的md5建立索引。如果两个文件的md5相同,那么直接从服务器端拷贝就行了(甚至不需要拷贝而只要记录一下),不需要客户端传送。因此即使文件名称等等信息都不相同,但是md5相同,也不要让客户端额外上传文件内容了!