使用spring框架ResponseEntity实现文件下载

网友投稿 520 2022-10-31

使用spring框架ResponseEntity实现文件下载

目录spring框架ResponseEntity实现文件下载后台代码ResponseEntity免压缩多文件下载免压缩批量文件下载

spring框架ResponseEntity实现文件下载

后台代码

@RequestMapping("downLoad")

public ResponseEntity downloadPromisePdf() {

String fileName = "企业诚信守法承诺书.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改为发出多个请求

js中先用数组储存需要下载的文件参数信息,然后循环数组执行下载方法,下载方法则先ajax判断文件是否存在,是则动态创建a标签批量下载文件

//获得文件数组ids后 循环下载方法

$.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) {//文件存在则创建动态a标签批量下载文件

if (data.success) {

//ResponseEntity下载文件的url

var url = "../filehandle/downLoad.do?filePlatPath="

+ "resource&fileFunctionPath=" + fileFunctionPath

+ "&fileNameInServer=" + fileNameInServer

+ "&fileOriginalName=" + fileOriginalName;

var fileName = fileNameInServer;

downloadFile(url,fileName);//动态创建a标签 批量下载

}

}

})

}

//动态创建a标签

const downloadFile = (url, fileName = '') => {

let eleLink = document.createElement('a');

eleLink.download = fileName;

eleLink.style.display = 'none';

eleLink.href = url;

// 受浏览器安全策略的因素,动态创建的元素必须添加到浏览器后才能实施点击

document.body.appendChild(eleLink);

// 触发点击

eleLink.click();

// 然后移除

document.body.removeChild(eleLink);

};

点击下载则会 批量同时下载

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:希姆通SIM868的参考设计接口的静电防护
下一篇:docker-Consul概述以及集群环境搭建(图文详解)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~