2011-10-06 2 views
0

사용자가 내 서버에 파일을 업로드하고 해당 요청을 게시 된 파일과 함께 내 서비스에 전달하면 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

이것은 바이트 []를 만드는 올바른 방법이 아닙니다. 나는 memorystream의 toArray()를 사용했고, 그것은 나를 위해 아름답게 작동합니다.

관련 문제