我要实现的功能很简单。就是通过浏览器将文件上传到远程服务器上。在编写代码过程中遇到了一些让我疑惑的问题。还请高手们指点下迷津。
<form action="fileUploadServlet" method="post" enctype="multipart/form-data">
<input class="file" type="file" name="filepath" size=20 style="border:1px solid" />
<br/>
<input type="submit" value="提交">
</form>
这是JSP页面中的代码
File f = new File("F:\\work\\temp.txt");
if(f.exists())
{
f.delete();
}
f.createNewFile();
OutputStream os = new FileOutputStream(f);
InputStream is = req.getInputStream();
byte[] b = new byte[1024];
while(is.available()>0)
{ is.read(b);
os.write(b);
}
os.flush();
os.close();
这是servlet中处理字节流的代码
在传输一些小文本的时候,是挺正常的。服务器上的缓存文件内容和要上传的文件内容一致。但当我上传一些比较大的文件(几KB的文本),发现服务器上缓存的文本内容要比实际的文本内容要多出来一部分。这是为何?
图片1,火狐浏览器中显示的发送请求时,附带的字节流
图片2,服务器上缓存文件里的内容,红框部分就是多出来的