通过发送url请求,直接获取到一个文件的Binary 数组内容,然后通过tauri的api:writeBinaryFile保存文件到本地电脑。
发送请求的时候,要加上响应类型:responseType: ResponseType.Binary
然后等返回的响应内容:发现是一个Binary 数组
这个时候去查看writeBinaryFile这个api,发现刚好支持:fs | Tauri Apps
 
 
所以我们可以直接将这个返回的内容丢到writeBinaryFile里面就可以了。
但是我们还需要获取文件下载时候,要保存到的路径,这个就用tauri的save dialog api就可以了:dialog | Tauri Apps
然后获取到文件的保存路径,就可以发送请求下载内容了:
const downFile = async (file?: any) => {
  var fileURL = file.openLink ? file.openLink : rightClickItem.openLink
  const basePath = await path.downloadDir() + `/${file.name ? file.name : rightClickItem.name}`;
  let selPath = await dialog.save({
    title: `保存文件: ${file.name ? file.name : rightClickItem.name}`,
    defaultPath: basePath,
    filters: [{
      name: '*',
      extensions: ['*']
    }]
  });
  console.log("selPath----", selPath);
  // 开始发送下载请求
  selPath && fileApi.downFile(fileURL).then(async res => {
    console.log("downRes----", res);
    writeBinaryFile({ contents: res.data as any, path: `${selPath}` })
      .then(res => {
        ElMessage({
          message: `${file.name ? file.name : rightClickItem.name}保存成功`,
          type: 'success',
        })
      }).catch(err => {
        ElMessage.error('文件保存失败:' + err)
      })
  })
}实现的效果:
点击保存后:



















