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

Java返回文件時(shí)為圖片或pdf等設(shè)置在線預(yù)覽或下載功能

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

設(shè)置Content-Disposition響應(yīng)頭類型

"inline"查看預(yù)覽 ; "attachment"下載;

inline:表示回復(fù)中的消息體會(huì)以頁(yè)面的一部分或者整個(gè)頁(yè)面的形式展示
attchment:以附件形式被下載到本地;

/**
 * 文件或圖片預(yù)覽/下載工具類
 * @author zh、
 * @data 2024/1/11 18:35
 */
@Component
@Slf4j
public class FileHttpUtil {
    /**
     * 根據(jù)物理路徑文件 獲取 下載/預(yù)覽 文件
     * @param file 文件
     * @param type 設(shè)置響應(yīng)頭類型 "inline"查看  "attachment"下載
     * @param fileName 文件名 
     * @return 對(duì)應(yīng)類型響應(yīng)文件
     */
    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>

接口調(diào)用或測(cè)試

  /**
     * 查詢文件
     * @param filePath文件地址 物理路徑
     * @param type 設(shè)置響應(yīng)頭類型  "inline"查看  "attachment"下載
     * @return 響應(yīng)文件
     * @throws IOException
     */
    @GetMapping(value = "/file")
    public ResponseEntity<?> file(String filePath,String type){
   		 //根據(jù)文件路徑去文件服務(wù)獲取文件
        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();
        }
    }

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

相關(guān)文章

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

    idea 使用Maven Helper idea的解決方法

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

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

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

    Java類和成員上的一些方法實(shí)例代碼

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

    Java手寫(xiě)簡(jiǎn)易版HashMap的使用(存儲(chǔ)+查找)

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

    springboot如何讀取自定義屬性

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

    工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

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

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

    Java設(shè)計(jì)模式--代理模式

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

    詳解MyBatisPlus邏輯刪除與唯一索引沖突問(wèn)題

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

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

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

最新評(píng)論