Request.Files [0] .InputStream показывает другую длину после загрузки - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь создать MD5 файла, когда пользователь загружает его на мой сервер, и перенаправить этот запрос вместе с размещенным файлом в мою службу, которая перепроверяет MD5 файла, отправленного следующим способом.

Это всегда показывает различную длину для 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());
                }
            }
        }

1 Ответ

0 голосов
/ 12 октября 2011

Это был неправильный способ создания байта [].Я использовал toArray () памяти потока, и он прекрасно работает для меня.

...