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

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)頭類(lèi)型

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

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

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

  • Java爬蟲(chóng)(Jsoup與WebDriver)的使用

    Java爬蟲(chóng)(Jsoup與WebDriver)的使用

    這篇文章主要介紹了Java爬蟲(chóng)(Jsoup與WebDriver)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Spring執(zhí)行sql腳本文件的方法

    Spring執(zhí)行sql腳本文件的方法

    這篇文章主要介紹了Spring執(zhí)行sql腳本文件的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • 基于MyBatis攔截器實(shí)現(xiàn)數(shù)據(jù)變更記錄的技術(shù)方案

    基于MyBatis攔截器實(shí)現(xiàn)數(shù)據(jù)變更記錄的技術(shù)方案

    本文介紹了在日常應(yīng)用開(kāi)發(fā)中記錄業(yè)務(wù)數(shù)據(jù)變更的需求與實(shí)現(xiàn)方法,設(shè)計(jì)了整體架構(gòu),實(shí)現(xiàn)自定義注解、數(shù)據(jù)變更記錄實(shí)體、事務(wù)同步機(jī)制和攔截器注冊(cè)方案,并通過(guò)示例展示了使用方法及常見(jiàn)問(wèn)題解決方案,最后總結(jié)了方案的優(yōu)勢(shì)和注意事項(xiàng),需要的朋友可以參考下
    2026-04-04
  • 詳解Java Web項(xiàng)目啟動(dòng)執(zhí)行順序

    詳解Java Web項(xiàng)目啟動(dòng)執(zhí)行順序

    這篇文章主要介紹了詳解Java Web項(xiàng)目啟動(dòng)執(zhí)行順序,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Java并發(fā)編程之原子性-Atomic的使用

    Java并發(fā)編程之原子性-Atomic的使用

    這篇文章主要介紹了Java并發(fā)編程之原子性-Atomic的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot實(shí)現(xiàn)使用反射模擬IOC和getBean

    SpringBoot實(shí)現(xiàn)使用反射模擬IOC和getBean

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)使用反射模擬IOC和getBean,IOC就是spring的核心思想之一——控制反轉(zhuǎn)。這里不再贅述,看此文章即可了解
    2023-04-04
  • JavaWeb-WebSocket瀏覽器服務(wù)器雙向通信方式

    JavaWeb-WebSocket瀏覽器服務(wù)器雙向通信方式

    文章介紹了WebSocket協(xié)議的工作原理和應(yīng)用場(chǎng)景,包括與HTTP的對(duì)比,接著,詳細(xì)介紹了如何在Java中使用WebSocket,包括配置類(lèi)、服務(wù)編寫(xiě)和前端頁(yè)面的實(shí)現(xiàn)
    2025-02-02
  • Java調(diào)用Deepseek-R1.1.5b大模型的超詳細(xì)教程(附代碼)

    Java調(diào)用Deepseek-R1.1.5b大模型的超詳細(xì)教程(附代碼)

    這篇文章主要為大家介紹了Java調(diào)用Deepseek-R1.1.5b大模型的超詳細(xì)教程并附上了代碼,文中的教程講解詳細(xì),有需要的小伙伴可以參考一下
    2025-03-03
  • Java Ehcache緩存框架入門(mén)級(jí)使用實(shí)例

    Java Ehcache緩存框架入門(mén)級(jí)使用實(shí)例

    這篇文章主要介紹了Java Ehcache緩存框架入門(mén)級(jí)使用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • java調(diào)用Restful接口的三種方法

    java調(diào)用Restful接口的三種方法

    本文主要介紹了java調(diào)用Restful接口的三種方法,主要包括HttpURLConnection實(shí)現(xiàn),HttpClient實(shí)現(xiàn)和Spring的RestTemplate,具有一定的參考,感興趣的可以了解一下    
    2021-08-08

最新評(píng)論

曲松县| 浮山县| 白朗县| 六枝特区| 满城县| 宁都县| 桂东县| 沅陵县| 烟台市| 泰安市| 罗平县| 寻甸| 崇礼县| 田林县| 北安市| 金华市| 弥渡县| 珠海市| 翁源县| 巴彦淖尔市| 三明市| 蒲城县| 浪卡子县| 行唐县| 普安县| 安达市| 建湖县| 休宁县| 虞城县| 孝义市| 米泉市| 泰顺县| 南安市| 黄山市| 泰来县| 三原县| 始兴县| 黎平县| 阜宁县| 石景山区| 阳西县|