思路

利用浏览器a标签进行下载

实现

// url为文件路径,name为文件名
const downloadFile = async (url, name) => {
  try {
    const a = document.createElement('a');
    a.setAttribute('download', name);
    a.href = url;

    //异步等待点击事件
    await new Promise((resolve) => {
      a.addEventListener('click', () => {
        resolve();
      });
    });

    // 等待点击后再移除元素
    a.remove();
  } catch (error) {
    console.error('下载文件时出现错误:', error);
  }
};