weizi2012

weizi2012

java 文件下载

/**
  * 本地下载
  *
  * @param response
  * @throws FileNotFoundException
  */
 public void downloadLocal(HttpServletResponse response)
   throws FileNotFoundException {
  // 下载本地文件
  String fileName = "Operator.doc".toString(); // 文件的默认保存名
  // 读到流中
  InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径
  // 设置输出的格式
  response.reset();
  response.setContentType("bin");
  response.addHeader("Content-Disposition", "attachment; filename=\""
    + fileName + "\"");
  // 循环取出流中的数据
  byte[] b = new byte[100];
  int len;
  try {
   while ((len = inStream.read(b)) > 0)
    response.getOutputStream().write(b, 0, len);
   inStream.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * 网络文件下载
  *
  * @param response
  * @throws MalformedURLException
  */
 public void downloadNet(HttpServletResponse response)
   throws MalformedURLException {
  // 下载网络文件
  int bytesum = 0;
  int byteread = 0;
  URL url = new URL("windine.blogdriver.com/logo.gif");
  try {
   URLConnection conn = url.openConnection();
   InputStream inStream = conn.getInputStream();
   FileOutputStream fs = new FileOutputStream("c:/abc.gif");
   byte[] buffer = new byte[1204];
   @SuppressWarnings("unused")
   int length;
   while ((byteread = inStream.read(buffer)) != -1) {
    bytesum += byteread;
    System.out.println(bytesum);
    fs.write(buffer, 0, byteread);
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * 支持在线打开下载
  *
  * @param filePath
  * @param response
  * @param isOnLine
  * @throws Exception
  */
 public void downLoad(String filePath, HttpServletResponse response,
   boolean isOnLine,String fname) throws Exception {
  System.out.println("filePath:" + filePath);
  File f = new File(filePath);
  if (!f.exists()) {
   response.sendError(404, "File not found!");
   return;
  }
  BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
  byte[] buf = new byte[1024];
  int len = 0;
  response.reset(); // 非常重要
  if (isOnLine) { // 在线打开方式
   URL u = new URL("file:///" + filePath);
   response.setContentType(u.openConnection().getContentType());
   response.setHeader("Content-Disposition", "inline; filename="
     + fname);
   // 文件名应该编码成UTF-8
  } else { // 纯下载方式
   response.setContentType("application/x-msdownload");
   response.setHeader("Content-Disposition", "attachment; filename="
     + fname);
  }
  OutputStream out = response.getOutputStream();
  while ((len = br.read(buf)) > 0)
   out.write(buf, 0, len);
  br.close();
  out.close();
 }

posted on 2012-09-27 10:57 jiangwei 阅读(1290) 评论(2)  编辑  收藏

Feedback

# re: java 文件下载 2012-09-27 15:11 远程考勤

下载图的就是速度和便捷  回复  更多评论   

# re: java 文件下载 2012-09-28 13:04 天津公积金取

这个是什么玩意儿其实也不懂  回复  更多评论   



只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿

随笔档案

文章档案

搜索

最新评论