在我的 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()
总是相同的(因为在上传过程中丢失的字节数总是相同的)。
有任何想法吗?