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

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

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

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

后臺代碼

@RequestMapping("downLoad")
public ResponseEntity<byte[]> downloadPromisePdf() {
? String fileName = "企業(yè)誠信守法承諾書.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免壓縮多文件下載

免壓縮批量文件下載

后臺ResponseEntity代碼還是一次請求下載一個

前臺js改為發(fā)出多個請求

js中先用數(shù)組儲存需要下載的文件參數(shù)信息,然后循環(huán)數(shù)組執(zhí)行下載方法,下載方法則先ajax判斷文件是否存在,是則動態(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)建動態(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);//動態(tài)創(chuàng)建a標(biāo)簽 批量下載
                    }
                }
            })
        }
		//動態(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;
  		  // 受瀏覽器安全策略的因素,動態(tài)創(chuàng)建的元素必須添加到瀏覽器后才能實施點擊
  		  document.body.appendChild(eleLink);
  		  // 觸發(fā)點擊  
  		  eleLink.click();
  		  // 然后移除
  		  document.body.removeChild(eleLink);
  		};

點擊下載則會 批量同時下載

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

相關(guān)文章

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

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

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

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

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

    Java8中Stream的一些神操作

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

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

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

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

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

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

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

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

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

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

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

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

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

    淺談java分頁三個類 PageBean ResponseUtil StringUtil

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

最新評論

安图县| 信阳市| 潢川县| 连江县| 平安县| 古田县| 卓资县| 阿鲁科尔沁旗| 乌拉特前旗| 彰化县| 桐梓县| 叶城县| 四平市| 咸宁市| 乳山市| 嘉义市| 基隆市| 贵溪市| 涞源县| 平度市| 寻乌县| 无极县| 达日县| 无为县| 遂川县| 扎兰屯市| 沈阳市| 金昌市| 依安县| 漳浦县| 邢台市| 同德县| 通州区| 吐鲁番市| 江孜县| 屯昌县| 武陟县| 镇巴县| 交城县| 凤阳县| 金溪县|