可以使用Blob和URL.createObjectURL()来实现直接下载Excel和Word文件,以下是实现方法:

  1. 在后端Spring Boot中,将Excel和Word文件放置在静态资源文件夹中,如src/main/resources/static/files/下。

  2. 在前端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。

  1. 在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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录