3

在我的 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()收到的 String 不包含原始文件的第一行。相反,我在 Java 代码中得到的第一行是上传文件中间某行的一部分。

文件的第一部分似乎以某种方式丢失了。这是可重现的,我从第一次得到的readLine()总是相同的(因为在上传过程中丢失的字节数总是相同的)。

有任何想法吗?

4

0 回答 0