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

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

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

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

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

inline:表示回復(fù)中的消息體會以頁面的一部分或者整個頁面的形式展示
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 對應(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)用或測試

  /**
     * 查詢文件
     * @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返回文件時為圖片或pdf等設(shè)置在線預(yù)覽或下載的文章就介紹到這了,更多相關(guān)java pdf在線預(yù)覽或下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

    Java爬蟲(Jsoup與WebDriver)的使用

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

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

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

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

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

    詳解Java Web項目啟動執(zhí)行順序

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

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

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

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

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

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

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

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

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

    Java Ehcache緩存框架入門級使用實例

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

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

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

最新評論

龙岩市| 雅安市| 克拉玛依市| 洛阳市| 沁水县| 津南区| 体育| 昭苏县| 四子王旗| 石楼县| 保定市| 玉树县| 德江县| 曲阜市| 丰顺县| 锡林浩特市| 克拉玛依市| 保定市| 襄樊市| 邹城市| 丰宁| 阿鲁科尔沁旗| 阜城县| 乐山市| 涞源县| 信宜市| 邹平县| 鹤峰县| 青阳县| 罗定市| 巴楚县| 额济纳旗| 兴安县| 兴隆县| 阜南县| 沐川县| 墨玉县| 双峰县| 巴马| 长海县| 漯河市|