Java HttpExchange:POST请求正文中缺少数据

时间:2013-05-05 01:26:59

标签: java forms upload com.sun.net.httpserver

在我的Java应用程序中,我将com.sun.net.httpserver类用于小型内置Web服务器。我也想支持文件上传。用户可以从网页中选择标准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 个答案:

没有答案