最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)文件下載的兩種方式

 更新時間:2017年11月23日 17:32:04   作者:pangqiandou  
這篇文章主要為大家詳細介紹了java實現(xiàn)文件下載的兩種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現(xiàn)文件下載的具體代碼,供大家參考,具體內容如下

public HttpServletResponse download(String path, HttpServletResponse response) {
    try {
      // path是指欲下載的文件的路徑。
      File file = new File(path);
      // 取得文件名。
      String filename = file.getName();
      // 取得文件的后綴名。
      String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

      // 以流的形式下載文件。
      InputStream fis = new BufferedInputStream(new FileInputStream(path));
      byte[] buffer = new byte[fis.available()];
      fis.read(buffer);
      fis.close();
      // 清空response
      response.reset();
      // 設置response的Header
      response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
      response.addHeader("Content-Length", "" + file.length());
      OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
      response.setContentType("application/octet-stream");
      toClient.write(buffer);
      toClient.flush();
      toClient.close();
    } catch (IOException ex) {
      ex.printStackTrace();
    }
    return response;
  }

  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 + "\"");
    // 循環(huán)取出流中的數(shù)據(jù)
    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();
    }
  }

  public void downloadNet(HttpServletResponse response) throws MalformedURLException {
    // 下載網(wǎng)絡文件
    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];
      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();
    }
  }

//支持在線打開文件的一種方式

public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
    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=" + f.getName());
      // 文件名應該編碼成UTF-8
    } else { // 純下載方式
      response.setContentType("application/x-msdownload");
      response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
    }
    OutputStream out = response.getOutputStream();
    while ((len = br.read(buf)) > 0)
      out.write(buf, 0, len);
    br.close();
    out.close();
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • springmvc 防止表單重復提交的兩種方法

    springmvc 防止表單重復提交的兩種方法

    最近在本地開發(fā)測試的時候,遇到一個表單重復提交的現(xiàn)象。本文主要介紹了springmvc 防止表單重復提交的兩種方法,感興趣的可以了解一下
    2021-08-08
  • java中對象轉json字符串的三種常用方式

    java中對象轉json字符串的三種常用方式

    本文主要介紹了java中對象轉json字符串的三種常用方式,包含Jackson庫,Gson庫和Hutool工具類這三種,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 淺談Java鎖的膨脹過程以及一致性哈希對鎖膨脹的影響

    淺談Java鎖的膨脹過程以及一致性哈希對鎖膨脹的影響

    本文主要介紹了Java鎖的膨脹過程以及一致性哈希對鎖膨脹的影響,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringBoot自動配置之自定義starter的實現(xiàn)代碼

    SpringBoot自動配置之自定義starter的實現(xiàn)代碼

    這篇文章主要介紹了SpringBoot自動配置之自定義starter的實現(xiàn)代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Logger.getLogger()與LogFactory.getLog()的區(qū)別詳解

    Logger.getLogger()與LogFactory.getLog()的區(qū)別詳解

    LogFactory來自common-logging包。如果用LogFactory.getLog,你可以用任何實現(xiàn)了通用日志接口的日志記錄器替換log4j,而程序不受影響
    2013-09-09
  • Spring Security跳轉頁面失敗問題解決

    Spring Security跳轉頁面失敗問題解決

    這篇文章主要介紹了Spring Security跳轉頁面失敗問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Spring中如何自定義監(jiān)聽器

    Spring中如何自定義監(jiān)聽器

    這篇文章將通過一個簡單的自定義的監(jiān)聽器,從源碼的角度分析一下Spring中監(jiān)聽的整個過程,分析監(jiān)聽的作用,感興趣的小伙伴可以了解一下
    2024-11-11
  • java 中 MD5加密的實例

    java 中 MD5加密的實例

    這篇文章主要介紹了java 中 MD5加密的實例的相關資料,通過本文希望能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • java使用jdbc鏈接Oracle示例類分享

    java使用jdbc鏈接Oracle示例類分享

    本文為大家提供一個java使用jdbc鏈接Oracle的示例類,大家參考使用吧
    2014-01-01
  • 帶你了解Java的類和對象

    帶你了解Java的類和對象

    下面小編就為大家?guī)硪黄胬斫釰ava類和對象。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09

最新評論

新疆| 义马市| 米林县| 建宁县| 大竹县| 调兵山市| 花垣县| 大港区| 若羌县| 嘉善县| 博湖县| 固安县| 博白县| 宁阳县| 定兴县| 玉环县| 井研县| 镇安县| 天峨县| 改则县| 哈尔滨市| 军事| 谢通门县| 马龙县| 合作市| 荔浦县| 榆林市| 镇巴县| 乌兰浩特市| 阳西县| 清涧县| 屏南县| 芦山县| 曲麻莱县| 文安县| 崇阳县| 望城县| 宣威市| 屏南县| 右玉县| 津南区|