2011-10-06 59 views
0

我試圖在用戶將文件上傳到我的服務器時創建文件的MD5,並將該請求連同發佈的文件一起轉發給我的服務,該服務重新檢查發佈的MD5文件使用以下方法。Request.Files [0] .InputStream在上傳後顯示不同的長度

這總是顯示服務端的Request.Files [0] .InputStream的長度不同。有什麼我失蹤,爲什麼這會顯示不正確的張貼文件的長度?

if (context.Request.Files.Count > 0) 
     { 
      byte[] fileData = null; 
      using (var binaryReader = new BinaryReader(context.Request.Files[0].InputStream)) 
      { 
       fileData = binaryReader.ReadBytes((int)context.Request.Files[0].InputStream.Length); 
       binaryReader.Close(); 
      } 

      using (MD5 md5 = MD5.Create()) 
      { 
       byte[] hashData = md5.ComputeHash(fileData); 

       //loop for each byte and add it to StringBuilder 
       for (int i = 0; i < hashData.Length; i++) 
       { 
        FileMD5Hash.Append(hashData[i].ToString()); 
       } 
      } 
     } 

回答

0

這不是創建byte []的正確方法。我使用了memorystream的toArray(),它對我來說工作得很好。