热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

React实现Post请求下载PDF文件的解决方案

在React应用中实现通过POST请求下载PDF文件的功能,本文提供了完整的代码示例。具体实现包括设置状态以显示加载提示,并通过控制台日志记录下载索引,确保请求的正确性和用户体验。此外,还详细介绍了如何处理响应流并将其转换为可下载的PDF文件,适用于需要安全传输数据的场景。

react

react处理post请求的下载pdf功能

完整代码:

//下载

Down=(index)=>{

this.setState({

visible: true,

});

console.log(index.pdfPath);

const THIS=this;

axios.post(‘http://localhost:3006/archiveDocument/downLoadPdf’,

{

“path”: index.pdfPath

},

{responseType:‘blob’}

).then((data)=> {

let Data = eval(data);

if (Data.data.state === 0) {

console.log(Data.data.message);

}

else {

console.log(“成功”);

console.log(Data.data);

//创建链接

let URL = window.URL || window.webkitURL;

let objectUrl = URL.createObjectURL(Data.data);

let a = document.createElement(‘a’);

a.href = objectUrl;

a.download = index.pdfPath;

document.body.appendChild(a);

a.click();

a.remove();

}

})

.catch(function (error){

console.log(error);

});

首先第一个难点是在, {responseType:‘blob’},这个是将返回的二进制文件转换成blob对象,如果成功返回,则在下载请求的返回中能得到pdf开头的回应

在post请求在相应中能得到以上的以pdf开头的乱码后,这个下载功能就完成了一半了,剩下的问题就是将这个

就是如何将blob对象转换成下载链接,并且调用浏览器的下载部分,关键代码就是代码中的

//创建链接

let URL = window.URL || window.webkitURL;

let objectUrl = URL.createObjectURL(Data.data);

let a = document.createElement(‘a’);

a.href = objectUrl;

a.download = index.pdfPath;

document.body.appendChild(a);

a.click();

a.remove();

`


推荐阅读
author-avatar
文人博客
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有