各位高人: 某接到一需求:
要求实现原始文件到文件服务器的上载及下载功能,上载过程不能使用文件流方式。 客户要求的方式是:将文件“原封不动”的从客户端“搬”到文件服务器,而不是先将原始文件解析成文件流,而后在服务器生成一个“新”文件,中间会经过防火墙。 由于客户方认为:使用“流”上载文件,是先读取客户要上载的文件,然后通过流的输入输出,在服务器生成一个新的文件,虽然看似是将原始文件上传,但是其输入输出过程中,难免会出现编码错误,因此这种方式下,上传前与上传后的文件可能不是100%完全相同。
在线等待达人指教或提供资料。
要求实现原始文件到文件服务器的上载及下载功能,上载过程不能使用文件流方式。 客户要求的方式是:将文件“原封不动”的从客户端“搬”到文件服务器,而不是先将原始文件解析成文件流,而后在服务器生成一个“新”文件,中间会经过防火墙。 由于客户方认为:使用“流”上载文件,是先读取客户要上载的文件,然后通过流的输入输出,在服务器生成一个新的文件,虽然看似是将原始文件上传,但是其输入输出过程中,难免会出现编码错误,因此这种方式下,上传前与上传后的文件可能不是100%完全相同。
在线等待达人指教或提供资料。
欢迎提供这方面的资料。
流在传输过程理论上会变化,但是可以用MD5来校验数据的一致性。
LZ可以试图把客户说服。因为客户的担忧是完全可以避免的
就算简单的COPY PASTE也是走流的形式
怎么个原封不动法?
那只能直接拆客户端硬盘搬到服务器了,
做开发不能完全被客户牵着鼻子走,遇到像楼主这样的客户你就等着煎熬吧
你要引导客户,让他们放弃不切实际的想法
就算是WINDOWS的复制一样是走文件流 明白?
老实说,FTP如果设置不正确,那才会导致文件上传不一致。比如“abcd\rxyz\n12345\r\nhahahahaha!”,保存完文件为27字节。如果不做任何设置,使用默认参数,在很多环境下(包括直接用put命令以及各种客户端)会在windows服务器上得到29字节,所有的换行都变成了\r\n。一定需要设置二进制传输,才能确保传输正确。确保上传文件和原始文件“100%完全相同”是“目标”,用所谓的“流”还是FTP,那只是“手段”。舍本而逐末,可乎?!
FTP 是基于 TCP 通信的,TCP 中的数据传输用的就是 Socket 输入输出流!不要说是 Java 了,就算其他语言也是采用流进行 IO 操作的,不采用流而进行 IO 操作,这种东西至少在用的系统中是不存在的。我不明白的是用不用流跟文件完不完整、乱码这些都八竿子打不着边的东西,不知道咋会说到一起去。佩服你们的客户,更佩服你们的技术团队!