前端实现excel和word下载 不需要下载按钮点击链接直接下载 代码静态资源里有excel和word文件 前端用thymeleaf后端用spring boot
可以使用Blob和URL.createObjectURL()来实现直接下载Excel和Word文件,以下是实现方法:
-
在后端Spring Boot中,将Excel和Word文件放置在静态资源文件夹中,如src/main/resources/static/files/下。
-
在前端Thymeleaf中,使用a标签来链接到文件的URL,如下:
<a th:href="@{/files/example.xlsx}" download>下载Excel文件</a>
<a th:href="@{/files/example.docx}" download>下载Word文件</a>
其中,@{/files/example.xlsx}和@{/files/example.docx}是Thymeleaf的URL表达式,会生成对应的文件URL。
- 在JavaScript中,使用XMLHttpRequest来获取文件二进制数据,然后使用Blob和URL.createObjectURL()来生成下载链接,如下:
function downloadFile(url, filename) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function() {
var blob = xhr.response;
var link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = filename;
link.click();
URL.revokeObjectURL(link.href);
};
xhr.send();
}
// 下载Excel文件
downloadFile('/files/example.xlsx', 'example.xlsx');
// 下载Word文件
downloadFile('/files/example.docx', 'example.docx');
其中,downloadFile()函数接受文件URL和文件名作为参数,使用XMLHttpRequest来获取文件二进制数据,生成Blob对象,然后使用URL.createObjectURL()生成下载链接,最后使用link.click()触发下载。最后,使用URL.revokeObjectURL()释放生成的URL
原文地址: https://www.cveoy.top/t/topic/fsRT 著作权归作者所有。请勿转载和采集!