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() всегда одинаково (так как всегда одинаковое количество байтов теряется при загрузке).

Есть идеи?

0 ответов

Другие вопросы по тегам