该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用servlet写了一个流下载,文件能正常下载,下载下来也能用,而且后台不报错,但是当我在下载模块的后台初始位置输入System.out.print("-------");这句话后发现每次下载一个文件的时候(注意是一次下载一个文件)这句话总是会打印好几遍,这是什么原因?Servlet中的源代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path=request.getRealPath("/upload")+"\\"+request.getParameter("fileName"); //获取上传文件的路径
path=new String(path.getBytes("iso-8859-1"));
File file = new File(path); //根据该路径创建文件对象
InputStream in = new FileInputStream(file); //创建文件字节输入流
OutputStream os = response.getOutputStream(); //创建输出流对象
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(file.getName().getBytes("gbk"),"iso-8859-1")); //设置应答头信息
response.addHeader("Content-Length", file.length() + "");
response.setCharacterEncoding("gbk");
response.setContentType("application/octet-stream");
int data = 0;
while ((data = in.read()) != -1) { //循环读取文件
os.write(data); //向指定目录中写文件
}
os.close(); //关闭流
in.close();
}