vue下载zip文件,显示文件损坏

发布时间 2023-06-27 14:14:41作者: z-laoyao
// 打印申请书
    printApplication(row){
      const awardApplicationIds = row.awardApplicationId || this.ids;
      printApply(awardApplicationIds).then(response => {
          // 创建Blob对象
          const blob = new Blob([response], { type: 'application/zip' });

          // 创建下载链接
          const url = URL.createObjectURL(blob);

          // 创建虚拟a标签进行下载
          const link = document.createElement('a');
          link.href = url;
          link.download = 'files.zip';
          link.click();

          // 释放URL对象
          URL.revokeObjectURL(url);
        })
        .catch(error => {
          console.error('下载文件失败:', error);
        })
    },

方法定义:

// 打印申请书
export function printApply(data){
  return request({
    url: '/evalu/evaAwardApply/printApply',
    method: 'post',
    data: data
  })
}

上面这样定义的方法,下载的文件就会出问题,需要加上下面这两行。

// 打印申请书
export function printApply(data){
  return request({
    url: '/evalu/evaAwardApply/printApply',
    method: 'post',
    responseType: 'blob',
    headers:{ 'Content-Type': 'application/json; application/octet-stream'},
    data: data
  })
}