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

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

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

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

在controller接口入?yún)⒅苯觽鱄ttpServletResponse response,然后設(shè)置文件名稱(chēng)(fileName)和需要下載的文件類(lèi)型(contentType),inputStream是要下載的文件流,無(wú)論是網(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)擊回車(chē),就可以看到下載效果了。

如果在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 來(lái)產(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)文章

  • cmd使用javac和java及注意事項(xiàng)

    cmd使用javac和java及注意事項(xiàng)

    這篇文章主要介紹了cmd使用javac和java及注意事項(xiàng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-12-12
  • Java數(shù)字和字符串拼接原理及案例

    Java數(shù)字和字符串拼接原理及案例

    這篇文章主要介紹了Java數(shù)字和字符串拼接原理及案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java正則表達(dá)式的替換和分組功能

    Java正則表達(dá)式的替換和分組功能

    這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式的替換和分組功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java 偽造http請(qǐng)求ip地址的方法

    java 偽造http請(qǐng)求ip地址的方法

    這篇文章主要介紹了java 偽造http請(qǐng)求ip地址的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • springboot配置templates直接訪(fǎng)問(wèn)的實(shí)現(xiàn)

    springboot配置templates直接訪(fǎng)問(wèn)的實(shí)現(xiàn)

    這篇文章主要介紹了springboot配置templates直接訪(fǎng)問(wèn)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 手寫(xiě)redis@Cacheable注解?支持過(guò)期時(shí)間設(shè)置方式

    手寫(xiě)redis@Cacheable注解?支持過(guò)期時(shí)間設(shè)置方式

    這篇文章主要介紹了手寫(xiě)redis@Cacheable注解?支持過(guò)期時(shí)間設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法

    SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Kotlin 內(nèi)聯(lián)函數(shù)詳解及實(shí)例

    Kotlin 內(nèi)聯(lián)函數(shù)詳解及實(shí)例

    這篇文章主要介紹了Kotlin 內(nèi)聯(lián)函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java輸入學(xué)號(hào)、姓名、年齡并對(duì)其進(jìn)行輸出的實(shí)現(xiàn)方法

    Java輸入學(xué)號(hào)、姓名、年齡并對(duì)其進(jìn)行輸出的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Java輸入學(xué)號(hào)、姓名、年齡并對(duì)其進(jìn)行輸出的實(shí)現(xiàn)方法,在計(jì)算機(jī)編程中,輸出學(xué)號(hào)和姓名是一個(gè)常見(jiàn)的任務(wù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Java集合框架之Map詳解

    Java集合框架之Map詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合框架之Map,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論

叙永县| 民权县| 三亚市| 中卫市| 盈江县| 忻城县| 徐闻县| 海宁市| 阿巴嘎旗| 上犹县| 隆安县| 晴隆县| 蓬莱市| 高阳县| 鹿泉市| 新巴尔虎右旗| 宁晋县| 屏山县| 泾源县| 伊宁市| 黑河市| 仙居县| 县级市| 湖口县| 瑞金市| 新化县| 远安县| 九龙坡区| 军事| 镇远县| 延安市| 乐山市| 绩溪县| 公安县| 武清区| 长白| 宣化县| 山丹县| 利津县| 镇坪县| 富锦市|