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

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

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

spring框架ResponseEntity實(shí)現(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)建的元素必須添加到瀏覽器后才能實(shí)施點(diǎn)擊
  		  document.body.appendChild(eleLink);
  		  // 觸發(fā)點(diǎn)擊  
  		  eleLink.click();
  		  // 然后移除
  		  document.body.removeChild(eleLink);
  		};

點(diǎn)擊下載則會 批量同時下載

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

相關(guān)文章

  • 解決IDEA右鍵沒有創(chuàng)建新的package選項(xiàng)的情況

    解決IDEA右鍵沒有創(chuàng)建新的package選項(xiàng)的情況

    這篇文章主要介紹了解決IDEA右鍵沒有創(chuàng)建新的package選項(xiàng)的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 詳解servlet調(diào)用的幾種簡單方式總結(jié)

    詳解servlet調(diào)用的幾種簡單方式總結(jié)

    這篇文章主要介紹了詳解servlet調(diào)用的幾種簡單方式總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • SpringBoot自定義maven-plugin插件整合asm代碼插樁

    SpringBoot自定義maven-plugin插件整合asm代碼插樁

    本文主要介紹了SpringBoot自定義maven-plugin插件整合asm代碼插樁,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Springcloud?feign傳日期類型參數(shù)報錯的解決方案

    Springcloud?feign傳日期類型參數(shù)報錯的解決方案

    這篇文章主要介紹了Springcloud?feign傳日期類型參數(shù)報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中使用synchronized關(guān)鍵字實(shí)現(xiàn)簡單同步操作示例

    Java中使用synchronized關(guān)鍵字實(shí)現(xiàn)簡單同步操作示例

    這篇文章主要介紹了Java中使用synchronized關(guān)鍵字實(shí)現(xiàn)簡單同步操作示例,本文起講解了synchronized修飾函數(shù)、synchronized修飾代碼塊、synchronized修飾靜態(tài)方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Java中的深拷貝和淺拷貝介紹

    Java中的深拷貝和淺拷貝介紹

    對象拷貝(Object Copy)就是將一個對象的屬性拷貝到另一個有著相同類類型的對象中去。在程序中拷貝對象是很常見的,主要是為了在新的上下文環(huán)境中復(fù)用對象的部分或全部 數(shù)據(jù)。Java中有三種類型的對象拷貝:淺拷貝(Shallow Copy)、深拷貝(Deep Copy)、延遲拷貝(Lazy Copy)
    2014-03-03
  • Java在算法題中的輸入問題實(shí)例詳解

    Java在算法題中的輸入問題實(shí)例詳解

    在校招筆試中,有的時候我們要自己設(shè)計輸入輸出,所以下面這篇文章主要給大家介紹了關(guān)于Java在算法題中的輸入問題,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • spring中actuator監(jiān)視器配置詳解

    spring中actuator監(jiān)視器配置詳解

    這篇文章主要介紹了spring中actuator監(jiān)視器配置詳解,actuator主要是完成微服務(wù)的監(jiān)控,完成監(jiān)控治理,可以查看微服務(wù)間的數(shù)據(jù)處理和調(diào)用,當(dāng)它們之間出現(xiàn)了異常,就可以快速定位到出現(xiàn)問題的地方,需要的朋友可以參考下
    2023-09-09
  • 解決idea2020.1找不到程序包和符號的問題

    解決idea2020.1找不到程序包和符號的問題

    這篇文章主要介紹了解決idea2020.1找不到程序包和符號的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Mybatis-plus自定義SQL注入器查詢@TableLogic邏輯刪除后的數(shù)據(jù)詳解

    Mybatis-plus自定義SQL注入器查詢@TableLogic邏輯刪除后的數(shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于Mybatis-plus自定義SQL注入器查詢@TableLogic邏輯刪除后的數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-03-03

最新評論