欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何從服務器中下載圖片

 更新時間:2016年05月18日 16:31:50   投稿:lijiao  
這篇文章主要為大家詳細介紹了Java如何從服務器中下載圖片,代碼中附有詳細注釋,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java服務器中下載圖片的方法,供大家參考,具體內(nèi)容如下

import java.io.IOException; 
import java.io.InputStream;  
import java.io.OutputStream;  
import java.net.URL; 
import java.net.URLConnection; 
import org.apache.commons.io.IOUtils; 
 
  /**
   * 從服務器中下載圖片
   *
   * @param fileName 圖片地址
   * @param response
   * @return
   */
  @RequestMapping(value = "/download")
  public void downloadMedia(HttpServletResponse response, HttpServletRequest request) {
    InputStream inputStream = null;
    OutputStream outputStream = null;
    try {
      //處理中文亂碼
      request.setCharacterEncoding("UTF-8");
      String fileName = request.getParameter("fileName");
      fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");
      //處理瀏覽器兼容
      response.setContentType("application/msexcel;charset=utf-8");//定義輸出類型
      Enumeration enumeration = request.getHeaders("User-Agent");
      String browserName = (String) enumeration.nextElement();
      boolean isMSIE = browserName.contains("MSIE");
      if (isMSIE) {
        response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF8"));
      } else {
        response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("gb2312"), "ISO8859-1"));
      }
      //url地址如果存在空格,會導致報錯!  解決方法為:用+或者%20代替url參數(shù)中的空格。
      fileName = fileName.replace(" ", "%20");
      //圖片下載
      URL url = new URL(fileName);
      URLConnection conn = url.openConnection();
      outputStream = response.getOutputStream();
      inputStream = conn.getInputStream();
      IOUtils.copy(inputStream, outputStream);
    } catch (IOException e) {
      System.err.println(e);
    }finally { 
      IOUtils.closeQuietly(inputStream); 
      IOUtils.closeQuietly(outputStream); 
   } 
  }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

相關文章

  • Springboot之自定義全局異常處理的實現(xiàn)

    Springboot之自定義全局異常處理的實現(xiàn)

    這篇文章主要介紹了Springboot之自定義全局異常處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Java單例模式的知識點詳解

    Java單例模式的知識點詳解

    在本篇文章里小編給大家整理的是關于Java單例模式的知識點詳解,有興趣的朋友們可以學習參考下。
    2020-02-02
  • Spring中的@Cacheable緩存注解詳解

    Spring中的@Cacheable緩存注解詳解

    這篇文章主要介紹了Spring中的@Cacheable緩存注解詳解,數(shù)據(jù)庫查找的流程是先要從磁盤拿到數(shù)據(jù),再刷新到內(nèi)存,再返回數(shù)據(jù)。磁盤相比于內(nèi)存來說,速度是很慢的,為了提升性能,就出現(xiàn)了基于內(nèi)存的緩存,需要的朋友可以參考下
    2023-05-05
  • SpringBoot詳解如何進行整合Druid數(shù)據(jù)源

    SpringBoot詳解如何進行整合Druid數(shù)據(jù)源

    Druid是阿里開發(fā)的一款開源的數(shù)據(jù)源,被很多人認為是Java語言中最好的數(shù)據(jù)庫連接池,本文主要介紹了SpringBoot整合Druid數(shù)據(jù)源的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Easypoi 輕松實現(xiàn)復雜excel文件導出功能

    Easypoi 輕松實現(xiàn)復雜excel文件導出功能

    這篇文章主要介紹了Easypoi 輕松實現(xiàn)復雜excel文件導出功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換

    springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換

    與前端聯(lián)調(diào)接口時,后端一些字段設計為Long類型,這樣就有可能導致前端缺失精度,這時候我們就需要將Long類型返回給前端時做數(shù)據(jù)類型轉(zhuǎn)換,本文主要介紹了springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換,感興趣的可以了解一下
    2023-11-11
  • springboot中使用過濾器,jsoup過濾XSS腳本詳解

    springboot中使用過濾器,jsoup過濾XSS腳本詳解

    這篇文章主要介紹了springboot中使用過濾器,jsoup過濾XSS腳本詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • IDEA創(chuàng)建Java項目保姆級教程(超詳細!)

    IDEA創(chuàng)建Java項目保姆級教程(超詳細!)

    這篇文章主要給大家介紹了關于IDEA創(chuàng)建Java項目保姆級教程的相關資料,Java是一種廣泛使用的編程語言,廣泛用于Web應用程序和客戶端應用程序的開發(fā),文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • kettle中使用js調(diào)用java類的方法

    kettle中使用js調(diào)用java類的方法

    這篇文章主要介紹了kettle中使用js調(diào)用java類的方法,本文講解了注意事項和調(diào)用語法,需要的朋友可以參考下
    2015-05-05
  • Java封裝的實現(xiàn)訪問限定符、包

    Java封裝的實現(xiàn)訪問限定符、包

    封裝就是將數(shù)據(jù)和操作數(shù)據(jù)的方法進行有機結合,隱藏對象的屬性(成員變量)和實現(xiàn)細節(jié),僅對外公開接口來和對象進行交互,下面這篇文章主要給大家介紹了關于Java封裝實現(xiàn)訪問限定符、包的相關資料
    2022-08-08

最新評論