文件下载使用默认的流就可以直接实现,也是和HTTP协议有关。
下载步骤:
1. 通过 HttpServletResponse.setContentType
方法设置 Content-Type 字段的值,设置为application/octet-stream或application/xmsdownload,决定客户端服务器以那种方式来接受返回的信息。
2. 通过 HttpServletResponse.setHeader 方法设置 Content-Disposition 头的值为
“attachment;filename=文件名”,浏览器通过附件的形式来获取到用户上传的文件。
3. 通过 HttpServletResponse. getoutputStream方法返回 ServletOutputStream对象来向客户端写入附件文件的内容。
4.文件下载需要设置设置响应头:content-disposition。
5. 获取输入流,指向需要下载的文件。
public void doset(HttpservletRequest request, HttpservletResponse response)
throws servletException, IOException
response, setcharacterEncoding("UTF-8");
//获取服务器路径
string serverpath = request.getSessionO.getservletcontext().getRealPathC"");
string filename = request.getparameter("filename");
File f = new File( serverpath+"/files/"+ filename);
if( f.exists())[
FileInputStreamfis = new FileInputstream(f);
byte[] b = new byte[fis.available()];
fis.read(b);
response, setHeader("content-Type","application/msword");//设置文件类型
response.setHeader("content-Disposition","attachment; filename="+filename);
//获取响应报文输出流对象
servletoutputStreamout =response.getoutputStream();
out.write(b);
out.flush();
out.close();
fis.close();
}
}