Java HttpExchange: данные отсутствуют в теле запроса POST
В моем приложении Java я использую com.sun.net.httpserver
классы для небольшого встроенного веб-сервера. Я также хочу поддержать загрузку файлов. На веб-странице пользователь может выбрать файл в стандартной форме HTML:
<form action="${home_url}/upload" enctype="multipart/form-data" method="post">
<fieldset>
<input type="file" id="inp" name="filename" size="50"><br>
<input type="submit" id="btn" value="Upload">
</fieldset>
</form>
В обработчике этой страницы загрузки (на которой публикуются данные) я делаю следующее:
InputStreamReader input = new InputStreamReader(exchange.getRequestBody(), "utf-8");
BufferedReader reader = new BufferedReader(input);
String line = reader.readLine();
while(line != null)
{
parser.addLine(line);
line = reader.readLine();
}
Впрочем, первый раз звоню reader.readLine()
полученная строка не содержит первую строку исходного файла. Вместо этого эта первая строка, которую я получаю в коде Java, является частью строки где-то в середине загруженного файла.
Кажется, первая часть файла как-то потеряна. Это воспроизводимо, и что я получаю с первого раза readLine()
всегда одинаково (так как всегда одинаковое количество байтов теряется при загрузке).
Есть идеи?