1. public HttpServletResponse download(String path, HttpServletResponse response) {
  2. try {
  3. // path是指欲下载的文件的路径。
  4. File file = new File(path);
  5. // 取得文件名。
  6. String filename = file.getName();
  7. // 取得文件的后缀名。
  8. String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
  9.  
  10. // 以流的形式下载文件。
  11. InputStream fis = new BufferedInputStream(new FileInputStream(path));
  12. byte[] buffer = new byte[fis.available()];
  13. fis.read(buffer);
  14. fis.close();
  15. // 清空response
  16. response.reset();
  17. // 设置response的Header
  18. response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
  19. response.addHeader("Content-Length", "" + file.length());
  20. OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
  21. response.setContentType("application/octet-stream");
  22. toClient.write(buffer);
  23. toClient.flush();
  24. toClient.close();
  25. } catch (IOException ex) {
  26. ex.printStackTrace();
  27. }
  28. return response;
  29. }
  30.  
  31. public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
  32. // 下载本地文件
  33. String fileName = "Operator.doc".toString(); // 文件的默认保存名
  34. // 读到流中
  35. InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径
  36. // 设置输出的格式
  37. response.reset();
  38. response.setContentType("bin");
  39. response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
  40. // 循环取出流中的数据
  41. byte[] b = new byte[100];
  42. int len;
  43. try {
  44. while ((len = inStream.read(b)) > 0)
  45. response.getOutputStream().write(b, 0, len);
  46. inStream.close();
  47. } catch (IOException e) {
  48. e.printStackTrace();
  49. }
  50. }
  51.  
  52. public void downloadNet(HttpServletResponse response) throws MalformedURLException {
  53. // 下载网络文件
  54. int bytesum = 0;
  55. int byteread = 0;
  56.  
  57. URL url = new URL("windine.blogdriver.com/logo.gif");
  58.  
  59. try {
  60. URLConnection conn = url.openConnection();
  61. InputStream inStream = conn.getInputStream();
  62. FileOutputStream fs = new FileOutputStream("c:/abc.gif");
  63.  
  64. byte[] buffer = new byte[1204];
  65. int length;
  66. while ((byteread = inStream.read(buffer)) != -1) {
  67. bytesum += byteread;
  68. System.out.println(bytesum);
  69. fs.write(buffer, 0, byteread);
  70. }
  71. } catch (FileNotFoundException e) {
  72. e.printStackTrace();
  73. } catch (IOException e) {
  74. e.printStackTrace();
  75. }
  76. }

  

Java 文件下载的更多相关文章

  1. JAVA文件下载功能问题解决日志

    今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...

  2. 关于java文件下载文件名乱码问题解决方案

    JAVA文件下载时乱码有两种情况: 1,下载时中文文件名乱码 2,下载时因为路径中包含中文文件名乱码,提示找不到文件 解决方法见下面部分代码 response.setContentType(" ...

  3. Java 文件下载工具类

    Java 文件下载工具类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static Logger logger = ...

  4. java文件下载,上传,解压方法

    1.文件下载(亲测可用) private static final int BUFFER = 2 * 1024;// 缓冲区大小(2k)private boolean isSuccess = true ...

  5. 【日常笔记】java文件下载返回数据流形式

    @RequestMapping("/downloadFile") @ResponseBody public void download(String uploadPathUrl, ...

  6. java文件下载 rest

    /** * 返回文件二进制 * */ @GET @Path("/excel") @Produces("application/vnd.ms-excel; charset= ...

  7. java 文件下载支持中文名称

    /** * 文件下载 * @param filePath 文件路径 * @param fileName 文件名称 */ public void download(String filePath,Str ...

  8. SpringMvc之java文件下载

    首先强调,需要下载的文件只能放在项目中的webapp下 1.页面的一个超链接,链接到controller <a href="<%=path%>/download" ...

  9. Java文件下载:如何编码文件名称以及如何设置HttpServletResponse

    在下载文件时,经常遇到文件名乱码等问题. 本文说明如何编码文件名,以及如何设置HttpServletResponse对象. 1,如何编码文件名 String userAgent = request.g ...

  10. Java 文件下载功能 解决中文乱码

    Html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

随机推荐

  1. Spark快速数据处理

    原书名:Fast Data Processing with Spark 原出版社:Packt Publishing 作者: (美)Holden Karau 丛书名:大数据技术丛书 出版社:机械工业出版 ...

  2. (转载)Linux一句话精彩

    (转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/ 0001[url=111]111[/url] [ 本帖最后由 bjc ...

  3. 基础算法(搜索):NOIP 2015 斗地主

    Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3& ...

  4. selenium webdriver(2)---页面对象定位

    webdriver的元素定位很灵活,提供了多种定位方式: Id LinkText PartialLinkText Name TagName Xpath ClassName CssSelector 这些 ...

  5. 开发神器之--Sublime Text

    原来还有这么个神器啊,忍痛丢掉了notepad++,投入她的怀抱!! 使用和介绍就不写了,大牛们已经整理了. 官网:http://www.sublimetext.com/ 入门及心得:http://w ...

  6. html自定义checkbox、radio、select —— checkbox、radio篇

    前些日子,所在公司项目的UI做了大改,前端全部改用 Bootstrap 框架,Bootstrap的优缺点在此就不详述了,网上一大堆相关资料. 前端的设计就交给我和另一个同事[LV,大学同班同学,毕业后 ...

  7. yum puppet 并整合控制台

    上篇说了下在ubuntu12.04上安装puppet,安装的版本为puppet2.7.11版本,今天尝试了下在CentOS6.4系统上安装puppet 3.1.1版本,本文参考chenshake的文章 ...

  8. VirtualBox上Ubuntu 共享文件夹

    1. virtualbox 菜单栏中设备-->共享文件夹,添加一个共享文件夹,比如共享文件夹路径是D:/share,共享文件夹名称是share. 2. 进入虚拟Ubuntu,在命令行终端输入: ...

  9. 322. Coin Change

    动态规划里例题,硬币问题. p[i] = dp[i - coin[j]] + 1; 注意i < coin[j] dp[i-coin[j]]无解都要跳过. public class Solutio ...

  10. [置顶] 第二届微软CRM交流年会

    第二届微软CRM交流会将在12月14日举行,亲们要是感兴趣可以查看下面的活动详情.Jeff也是第一次参加这类活动,作为本次活动的嘉宾我为大家带来一个挺有意思的分享主题<Dynamics CRM ...