亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java返回文件時為圖片或pdf等設置在線預覽或下載功能

 更新時間:2024年01月16日 09:38:20   作者:菜鳥程序猿、  
這篇文章主要介紹了Java返回文件時為圖片或pdf等設置在線預覽或下載功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

設置Content-Disposition響應頭類型

"inline"查看預覽 ; "attachment"下載;

inline:表示回復中的消息體會以頁面的一部分或者整個頁面的形式展示
attchment:以附件形式被下載到本地;

/**
 * 文件或圖片預覽/下載工具類
 * @author zh、
 * @data 2024/1/11 18:35
 */
@Component
@Slf4j
public class FileHttpUtil {
    /**
     * 根據物理路徑文件 獲取 下載/預覽 文件
     * @param file 文件
     * @param type 設置響應頭類型 "inline"查看  "attachment"下載
     * @param fileName 文件名 
     * @return 對應類型響應文件
     */
    public static ResponseEntity<?> getResponseEntity(byte[] file , String type , String fileName ){
        ResponseEntity.BodyBuilder responseEntity = ResponseEntity.ok();
        HttpHeaders httpHeaders = new HttpHeaders();
        Tika tika = new Tika();
        String mediaType = tika.detect(file);
        httpHeaders.setContentType(MediaType.parseMediaType(mediaType));
        httpHeaders.setContentDisposition(ContentDisposition.builder(type)
                .filename(URLEncoder.encode(fileName )).build());
        httpHeaders.setCacheControl(CacheControl.noCache());
        //httpHeaders.setCacheControl(CacheControl.maxAge(10, TimeUnit.MINUTES));
        return responseEntity.headers(httpHeaders).body(file );
    }
需要的pom依賴文件
	<dependency>
      <groupId>org.apache.tika</groupId>
      <artifactId>tika-core</artifactId>
      <version>1.28.4</version>
    </dependency>

接口調用或測試

  /**
     * 查詢文件
     * @param filePath文件地址 物理路徑
     * @param type 設置響應頭類型  "inline"查看  "attachment"下載
     * @return 響應文件
     * @throws IOException
     */
    @GetMapping(value = "/file")
    public ResponseEntity<?> file(String filePath,String type){
   		 //根據文件路徑去文件服務獲取文件
        File file = new File(filePath);
        try (FileInputStream fileInputStream = new FileInputStream(file)) {
            byte[] buf = new byte[fileInputStream.available()];
            fileInputStream.read(buf);
            return FileHttpUtil.getResponseEntity(buf, type,file .getName());
        } catch (IOException e) {
             e.printStackTrace();
        }
    }

到此這篇關于Java返回文件時為圖片或pdf等設置在線預覽或下載的文章就介紹到這了,更多相關java pdf在線預覽或下載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • idea 使用Maven Helper idea的解決方法

    idea 使用Maven Helper idea的解決方法

    這篇文章主要介紹了idea 使用Maven Helper idea的解決方法,本文給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • SpringMVC通過Ajax處理Json數(shù)據的步驟詳解

    SpringMVC通過Ajax處理Json數(shù)據的步驟詳解

    這篇文章主要介紹了SpringMVC通過Ajax處理Json數(shù)據的步驟詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java類和成員上的一些方法實例代碼

    Java類和成員上的一些方法實例代碼

    這篇文章主要介紹了Java類和成員上的一些方法實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Java手寫簡易版HashMap的使用(存儲+查找)

    Java手寫簡易版HashMap的使用(存儲+查找)

    這篇文章主要介紹了Java手寫簡易版HashMap的使用(存儲+查找),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • springboot如何讀取自定義屬性

    springboot如何讀取自定義屬性

    大家好,本篇文章主要講的是springboot如何讀取自定義屬性,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • 工廠方法模式_動力節(jié)點Java學院整理

    工廠方法模式_動力節(jié)點Java學院整理

    這篇文章主要介紹了工廠方法模式_動力節(jié)點Java學院整理的相關資料,需要的朋友可以參考下
    2017-08-08
  • Java函數(shù)習慣用法詳解

    Java函數(shù)習慣用法詳解

    本篇文章主要給大家總結了java中最常用的函數(shù)的用法和寫法,需要的朋友參考一下吧。
    2017-12-12
  • Java設計模式--代理模式

    Java設計模式--代理模式

    代理就是一個人或者一個機構代表另一個人或者另一個機構采取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在客戶端和目標對象之前起到中介的作用
    2021-07-07
  • 詳解MyBatisPlus邏輯刪除與唯一索引沖突問題

    詳解MyBatisPlus邏輯刪除與唯一索引沖突問題

    這篇文章主要介紹了詳解MyBatisPlus邏輯刪除與唯一索引沖突問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Java枚舉類與注解,新手一篇搞定它

    Java枚舉類與注解,新手一篇搞定它

    枚舉類型是Java 5新增的特性,它是一種新的類型,允許用常量來表示特定的數(shù)據片斷,而且全部都以類型安全的形式來表示。由于Java 不支持多繼承,所以枚舉對象不能再繼承其他類(可以實現(xiàn)接口)
    2021-06-06

最新評論