Как проверить максимальный размер загружаемого файла в C ++? - PullRequest
0 голосов
/ 19 марта 2012

У меня есть сервер, написанный на C ++, который позволяет загружать файлы. Но я хочу проверить ПЕРВЫЙ размер файла и ТОГДА загрузить его, если он меньше 100 МБ, иначе ошибка. Есть ли функция, которая может это сделать?

Это моя функция:

long bytes_read = recv(client_fd, tempBuffer, sizeof(tempBuffer),0);

Но я не могу контролировать переменную bytes_read при получении файла, но только после. Это проблема.

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Вы должны отправить размер файла от клиента ПЕРЕД отправкой самого файла. Проверьте размер и ответьте своему клиенту, готовы ли вы его получить или нет

0 голосов
/ 19 марта 2012

Вы должны отправить 4-байтовую длину файла перед данными файла:

int file_fize;
recv(client_fd, &file_fize, sizeof(file_fize),0);
recv(client_fd, buffer, file_fize,0);
...