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

java實(shí)現(xiàn)下載文件到默認(rèn)瀏覽器路徑

 更新時(shí)間:2022年05月20日 09:03:10   作者:我們都愛松松吧  
這篇文章主要介紹了java實(shí)現(xiàn)下載文件到默認(rèn)瀏覽器路徑,具有很好的參考價(jià)值,希望對(duì)的大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

下載文件到默認(rèn)瀏覽器路徑

在controller接口入?yún)⒅苯觽鱄ttpServletResponse response,然后設(shè)置文件名稱(fileName)和需要下載的文件類型(contentType),inputStream是要下載的文件流,無論是網(wǎng)絡(luò)文件還是存儲(chǔ)在阿里OOS或者騰訊COS靜態(tài)存儲(chǔ)服務(wù)中的文件,都可以轉(zhuǎn)化成InputStream的形式。

 @GetMapping("/download")
 public void download(HttpServletResponse response) {
         return this.downloadFile(response);
    }
public void downloadFile(HttpServletResponse response, InputStream inputStream, String fileName, String contentType) {
        try (BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream())) {
            //通知瀏覽器以附件形式下載
            response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", fileName));
            //文件輸出格式
            response.setContentType(contentType);
            byte[] car = new byte[1024];
            int len;
            while ((len = inputStream.read(car)) != -1) {
                out.write(car, 0, len);
            }
        } catch (IOException e) {
            log.error("Method:downloadFile,ErrorMsg:{}", e.getMessage());
        }
    }

啟動(dòng)本地服務(wù),把該接口鏈接url復(fù)制在瀏覽器上,點(diǎn)擊回車,就可以看到下載效果了。

如果在postman上測(cè)試,則需要在以下界面點(diǎn)下載按鈕:

在這里插入圖片描述

Selenium修改瀏覽器默認(rèn)下載路徑

代碼實(shí)現(xiàn) java + selenium修改瀏覽器默認(rèn)下載路徑方法

// 1.設(shè)置驅(qū)動(dòng)路徑(驅(qū)動(dòng)在 target 文件夾中)
System.setProperty("webdriver.chrome.driver", this.getClass().getResource("/").getPath() + "drivers/chromedriver.exe");

// 2.新的下載地址為桌面(可以弄成某個(gè)文件夾路徑而不要直接弄成死的靜態(tài)路徑)
String downloadPath = "C:\\Users\\XXX\\Desktop";

// 3.HashMap 中保存下載地址信息
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("download.default_directory", downloadPath);

// 4.ChromeOptions 中設(shè)置下載路徑信息,需要傳入保存有下載路徑的 HashMap
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("prefs", hashMap);

// 依據(jù) ChromeOptions 來產(chǎn)生 DesiredCapbilities,這時(shí) DesiredCapbilities 就也具備了下載路徑的信息了
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

// 5.依據(jù) ChromeOptions 產(chǎn)生驅(qū)動(dòng),此時(shí)的 driver 已經(jīng)具備了新的下載路徑的
WebDriver driver = new ChromeDriver(desiredCapabilities );

以上方法親測(cè)有效,僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中的異常測(cè)試框架JUnit使用上手指南

    Java中的異常測(cè)試框架JUnit使用上手指南

    這篇文章主要介紹了Java的異常測(cè)試框架JUnit使用上手指南,JUnit是Java代碼進(jìn)行單元測(cè)試中的常用工具,需要的朋友可以參考下
    2016-03-03
  • Spring mvc如何實(shí)現(xiàn)數(shù)據(jù)處理

    Spring mvc如何實(shí)現(xiàn)數(shù)據(jù)處理

    這篇文章主要介紹了Spring mvc如何實(shí)現(xiàn)數(shù)據(jù)處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 基于JavaMail的Java實(shí)現(xiàn)簡單郵件發(fā)送功能

    基于JavaMail的Java實(shí)現(xiàn)簡單郵件發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了基于JavaMail的Java實(shí)現(xiàn)簡單郵件發(fā)送功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 關(guān)于Java中修飾符的總結(jié)(fina除外)

    關(guān)于Java中修飾符的總結(jié)(fina除外)

    下面小編就為大家?guī)硪黄P(guān)于Java中修飾符的總結(jié)(fina除外)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • flink進(jìn)階富函數(shù)生命周期介紹

    flink進(jìn)階富函數(shù)生命周期介紹

    這篇文章主要為大家介紹了flink進(jìn)階富函數(shù)生命周期的舉例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Redis實(shí)現(xiàn)商品秒殺功能頁面流程

    Redis實(shí)現(xiàn)商品秒殺功能頁面流程

    這篇文章主要介紹了Redis實(shí)現(xiàn)商品秒殺功能的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • spring boot 集成shiro的配置方法

    spring boot 集成shiro的配置方法

    要在spring boot上集成其他框架,首先要會(huì)spring javaconfig方法,利用此方法同樣可以配置其他模塊。這篇文章主要介紹了spring boot 集成shiro的配置方法,需要的朋友可以參考下
    2018-01-01
  • Java Object toString方法原理解析

    Java Object toString方法原理解析

    這篇文章主要介紹了Java Object toString方法原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java實(shí)現(xiàn)多線程文件下載的代碼示例

    Java實(shí)現(xiàn)多線程文件下載的代碼示例

    本篇文章主要介紹了Java實(shí)現(xiàn)多線程下載的代碼示例,Java多線程可以充分利用CPU的資源,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • java,android,MD5加密算法的實(shí)現(xiàn)代碼(16位,32位)

    java,android,MD5加密算法的實(shí)現(xiàn)代碼(16位,32位)

    下面小編就為大家?guī)硪黄猨ava,android,MD5加密算法的實(shí)現(xiàn)代碼(16位,32位)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09

最新評(píng)論