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

使用spring框架ResponseEntity實(shí)現(xiàn)文件下載

 更新時(shí)間:2022年02月12日 15:24:23   作者:王威振的csdn  
這篇文章主要介紹了使用spring框架ResponseEntity實(shí)現(xiàn)文件下載,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring框架ResponseEntity實(shí)現(xiàn)文件下載

后臺(tái)代碼

@RequestMapping("downLoad")
public ResponseEntity<byte[]> downloadPromisePdf() {
? String fileName = "企業(yè)誠(chéng)信守法承諾書.pdf";
? try {
? ? byte[] pdf = **;//byte文件
? ? String dfileName = new String(fileName.getBytes("gb2312"), "iso8859-1");
? ? HttpHeaders headers = new HttpHeaders();
? ? headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
? ? headers.setContentDispositionFormData("attachment", dfileName);
? ? return new ResponseEntity<>(pdf, headers, HttpStatus.OK);
? } catch (BuzEx e){
? ? logger.error( e.getMessage());
? }catch (Exception e) {
? }
? return null;
}

前端直接window.location.href='/downLoad';

ResponseEntity免壓縮多文件下載

免壓縮批量文件下載

后臺(tái)ResponseEntity代碼還是一次請(qǐng)求下載一個(gè)

前臺(tái)js改為發(fā)出多個(gè)請(qǐng)求

js中先用數(shù)組儲(chǔ)存需要下載的文件參數(shù)信息,然后循環(huán)數(shù)組執(zhí)行下載方法,下載方法則先ajax判斷文件是否存在,是則動(dòng)態(tài)創(chuàng)建a標(biāo)簽批量下載文件

//獲得文件數(shù)組ids后 循環(huán)下載方法
$.each(ids,function(i,value){    	
   	downLoad(fileFunctionPathArray[i],fileNameInServerArray[i],fileOriginalNameArray[i],ids[i]);
    })
//下載方法
function downLoad(fileFunctionPath,fileNameInServer,fileOriginalName,ids){
            $.ajax({
            	//檢查文件是否存在
                url: "/ResourceManage/resourceDownloaduserLink/checkPermission",
                data: {
                    sysuserid: localStorage.getItem("id"),
                    resourceid: ids
                },
                success: function (data) {//文件存在則創(chuàng)建動(dòng)態(tài)a標(biāo)簽批量下載文件
                    if (data.success) {
                    //ResponseEntity下載文件的url
                    	var url = "../filehandle/downLoad.do?filePlatPath=" 
                        	+ "resource&fileFunctionPath=" + fileFunctionPath 
                        	+ "&fileNameInServer=" + fileNameInServer
                        	+ "&fileOriginalName=" + fileOriginalName;
                    	var fileName = fileNameInServer;
                    	
                    	downloadFile(url,fileName);//動(dòng)態(tài)創(chuàng)建a標(biāo)簽 批量下載
                    }
                }
            })
        }
		//動(dòng)態(tài)創(chuàng)建a標(biāo)簽
        const downloadFile = (url, fileName = '') => {
  		  let eleLink = document.createElement('a');
  		  eleLink.download = fileName;
  		  eleLink.style.display = 'none';
  		  eleLink.href = url;
  		  // 受瀏覽器安全策略的因素,動(dòng)態(tài)創(chuàng)建的元素必須添加到瀏覽器后才能實(shí)施點(diǎn)擊
  		  document.body.appendChild(eleLink);
  		  // 觸發(fā)點(diǎn)擊  
  		  eleLink.click();
  		  // 然后移除
  		  document.body.removeChild(eleLink);
  		};

點(diǎn)擊下載則會(huì) 批量同時(shí)下載

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

相關(guān)文章

  • Springboot中動(dòng)態(tài)語言groovy介紹

    Springboot中動(dòng)態(tài)語言groovy介紹

    Apache的Groovy是Java平臺(tái)上設(shè)計(jì)的面向?qū)ο缶幊陶Z言,這門動(dòng)態(tài)語言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺(tái)的腳本語言使用,這篇文章主要介紹了springboot中如何使用groovy,需要的朋友可以參考下
    2022-09-09
  • java微信企業(yè)號(hào)開發(fā)之開發(fā)模式的開啟

    java微信企業(yè)號(hào)開發(fā)之開發(fā)模式的開啟

    這篇文章主要為大家詳細(xì)介紹了java微信企業(yè)號(hào)開發(fā)之開發(fā)模式的開啟方法,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java8中Stream的一些神操作

    Java8中Stream的一些神操作

    Stream是Java8中處理集合的關(guān)鍵抽象概念,它可以指定你希望對(duì)集合進(jìn)行的操作,可以執(zhí)行非常復(fù)雜的查找、過濾和映射數(shù)據(jù)等操作,這篇文章主要給大家介紹了Java8中Stream的一些神操作,需要的朋友可以參考下
    2021-11-11
  • 最新IntelliJ IDEA 2020版本的安裝教程詳解

    最新IntelliJ IDEA 2020版本的安裝教程詳解

    這篇文章主要介紹了最新IntelliJ IDEA 2020版本的安裝教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • MybatisPlus批量保存原理及失效原因排查全過程

    MybatisPlus批量保存原理及失效原因排查全過程

    這篇文章主要介紹了MybatisPlus批量保存原理及失效原因排查全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 簡(jiǎn)單了解Java多線程實(shí)現(xiàn)的四種方式

    簡(jiǎn)單了解Java多線程實(shí)現(xiàn)的四種方式

    這篇文章主要介紹了簡(jiǎn)單了解Java多線程實(shí)現(xiàn)的四種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java實(shí)現(xiàn)哈夫曼壓縮與解壓縮的方法

    java實(shí)現(xiàn)哈夫曼壓縮與解壓縮的方法

    這篇文章主要介紹了java實(shí)現(xiàn)哈夫曼壓縮與解壓縮的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 詳解SpringMVC的攔截器參數(shù)及攔截器鏈配置

    詳解SpringMVC的攔截器參數(shù)及攔截器鏈配置

    攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行。本文將詳細(xì)講講SpringMVC中攔截器參數(shù)及攔截器鏈配置,感興趣的可以嘗試一下
    2022-07-07
  • Mybatis控制臺(tái)打印SQL語句的兩種實(shí)現(xiàn)方式

    Mybatis控制臺(tái)打印SQL語句的兩種實(shí)現(xiàn)方式

    在使用Mybatis開發(fā)時(shí),由于可以動(dòng)態(tài)拼接SQL,當(dāng)動(dòng)態(tài)SQL拼接塊過多,直接從*mapper.xml中找出完整的SQL較難,此時(shí),可以通過兩種方法調(diào)試出SQL,方法一,將ibatislog4j運(yùn)行級(jí)別調(diào)到DEBUG,在控制臺(tái)打印出ibatis運(yùn)行的SQL語句
    2024-10-10
  • 淺談java分頁(yè)三個(gè)類 PageBean ResponseUtil StringUtil

    淺談java分頁(yè)三個(gè)類 PageBean ResponseUtil StringUtil

    下面小編就為大家?guī)硪黄獪\談java分頁(yè)三個(gè)類 PageBean ResponseUtil StringUtil。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07

最新評(píng)論

清水县| 吉木萨尔县| 东辽县| 安康市| 平原县| 乌鲁木齐市| 四子王旗| 贡觉县| 安溪县| 沿河| 邵阳县| 多伦县| 淮南市| 同德县| 望都县| 嵊泗县| 万宁市| 武安市| 财经| 宝山区| 郴州市| 夹江县| 讷河市| 榕江县| 敦煌市| 东乌珠穆沁旗| 静乐县| 桦南县| 额尔古纳市| 山丹县| 安西县| 定结县| 武威市| 万源市| 崇阳县| 江都市| 尚志市| 凤山市| 保山市| 县级市| 荔波县|