Vue2:下载的PDF已损坏

时间:2017-10-20 14:47:05

标签: javascript vuejs2

按钮应下载即时生成的PDF。 PDF由API正确生成,客户端代码处理的文件已损坏且无法打开

流程:

  1. 点击按钮
  2. exportDataAsPDFAction已触发
  3. POST请求已构建并执行
  4. 响应包含原始PDF文件
  5. 通过以下回调逻辑启动文件下载:
  6. this.exportDataAsPDFAction({
      gridKey: this.grid.Key,
      callback: response => {
        let hiddenElement = document.createElement('a');
    
        // This seems to be the problem area
        hiddenElement.href = 'data:application/pdf;base64,' + window.btoa(encodeURIComponent(response));
        hiddenElement.target = '_blank';
        hiddenElement.download = 'Results.pdf';
        hiddenElement.click();
      }
    });
    

    附加

    使用CSV执行与所需格式相同的任务。唯一的区别是编码和文件扩展名:

    hiddenElement.href = 'data:attachment/csv,' + encodeURI(response);
    

1 个答案:

答案 0 :(得分:0)

尝试hiddenElement.href = window.URL.createObjectURL(response);