问题描述
现在做了一个文件上传的功能,页面中使用了百度的webuploader控件,把文件分割成流,分片上传到后台我现在是每接受一个分片就把他保存成一个文件,等全部上传完成后再合并,现在出了一个问题,那就是合并后的文件和源文件MD5校验码变了。。。下面是我的合并代码。。求大神帮忙看看怎么合并才能让文件MD5校验码不变DirectoryInfodirectory=newDirectoryInfo(hidDir);if(directory.GetFiles().Length.ToString()==chunks){//FileInfo[]fileInfoArray=directory.GetFiles();intsize=int.Parse(context.Request.Params["size"]);//byte[]bytes=newbyte[size];intc=int.Parse(chunks);FileStreamf=newFileStream(path+serverFileName,FileMode.Create|FileMode.Append);BinaryWriterAddWriter=newBinaryWriter(f);for(inti=0;i<c;i++){FileStreamaddFile=newFileStream(hidDir+"/$"+i+".aw",FileMode.Open);intfsLen=(int)addFile.Length;byte[]heByte=newbyte[fsLen];addFile.Read(heByte,0,heByte.Length);//获得上传的分片数据流//将上传的分片追加到临时文件末尾AddWriter.Write(heByte);//关闭BinaryReader文件阅读器addFile.Close();addFile.Dispose();}AddWriter.Close();AddWriter.Dispose();deleteDirAndFile(hidDir);//删除隐藏文件夹}
解决方案
解决方案二:
我晕应该不是我合并方法的问题,找了一个没用分割的小文件,上传之后MD5码也变了
解决方案三:
你先判断上传后还能正确打开吗?
解决方案四:
求邦忙,为什么我的webuploader分片上传,每次每次上传都是得到第一个分片的MD5值???