我创建了一个 servlet,它将文件的内容读取到字节数组中,随后写入响应的 OutputStream:
// set headers
resp.setHeader("Content-Disposition","attachment; filename=\"file.txt\"");
resp.setHeader("Content-Length", "" + fileSize);
// output file content.
OutputStream out = resp.getOutputStream();
out.write(fileBytes);
out.close();
现在,我还编写了一个“客户端”,它需要找出文件有多大。这应该很容易,因为我添加了“Content-Length”标头。
URLConnection conn = url.openConnection();
long fileSize = conn.getContentLength();
但是,我对大局有点不确定。据我了解我自己的 servlet,整个文件内容被转储到响应的 OutputStream 中。但是,调用 getContentLength() 是否也会以某种方式部分或全部下载实际文件数据?换句话说,当我调用 conn.getContentLength() 时,服务器会返回多少文件?标题是否与内容“分开”?
高度赞赏所有输入!