Ограничить размер загружаемого файла в C# REST API - PullRequest
0 голосов
/ 26 мая 2020

У меня есть этот код для загрузки файла изображения в мой c# restful api:

using(Streamer reader = new StreamerReader(req.Bindfile().Result.OpenReadStream())) {
    request.Data.Image = Encoding.ASCII.GetBytes(reader.ReadToEnd());
}

Я знаю, что проглатываю файл за один раз, но я хотел бы знать "правильный путь" "чтобы изменить этот код таким образом, чтобы он отклонял файл, если он превышает 10 мегабайт.

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

Это правильно? Может ли кто-нибудь помочь мне сделать это способом C#?

1 Ответ

1 голос
/ 26 мая 2020

Вы можете проверить количество байтов, присутствующих в потоке, и преобразовать их в МБ следующим образом: amountOfBytes / (1024 * 1024f). Затем вы можете проверить, превышает ли сумма ваш порог, в вашем случае 10, и принять соответствующие меры.

...