之前一直接触文件上传,以为文件下载是什么东西。仔细看了下,才发现其本质就是文件的复制。
下载的关键代码:
private void download(HttpServletRequest request,HttpServletResponse response) throws IOException { File f = new File("c:\\095557357.jpg"); response.reset(); response.setContentType("image/jpeg");//设置下载文件的类型 response.setHeader("content-disposition","attachment; filename=text.jpg"); //设置下载的文件名 long fileLength=f.length(); String length1=String.valueOf(fileLength); response.setHeader("Content_Length",length1); //下载文件的大小 InputStream in = new FileInputStream( f ); OutputStream out = response.getOutputStream(); byte[] buffer = new byte[2097152]; int ins = in.read(buffer);//读取字节到buffer中 //ins == -1 时 。就已经是文件的结尾了 while ( ins != -1 ) { out.write(buffer, 0, ins);//将缓存buffer中的数据写到文件中 ins = in.read(buffer); } in.close(); out.flush(); out.close(); }
这是一个servlet,复制文件的代码。
response.setContentType("image/jpeg");
是比较重要的,标明本次下载的是一张图片。
原文:http://www.cnblogs.com/aigeileshei/p/5330018.html