使用servlet进行文件下载,需要设置http首部:
response.addHeader("Content-Disposition", "attachment; filename=\""+文件名+"\"");
设置ContentType:
response.setContentType("application/x-msdownload");
再利用IO进行传输。DEMO如下:
public class DownLoad extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd_kkmmss");
String random=sdf.format(d);
String targetFile=random+".jpg";
response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition", "attachment; filename=\""+targetFile+"\"");
ServletContext ctx=this.getServletContext();
InputStream is=ctx.getResourceAsStream("/容器1.jpg"); //放在根目录下
int read=0;
byte[] bytes=new byte[1024];
OutputStream os=response.getOutputStream();
while((read=is.read(bytes))!=-1){
os.write(bytes,0,read);
}
}catch(Exception e){
}
}
}