重点:不要用框架封装的uni.request,直接使用没游封装的uni.request()进行请求数据
/**
* 下载---文件
* 文件流下载
* */
downloadFapiao(fphm) {
//这里是请求路径和参数的拼接(完整请求url)config.baseUrl是API的基本路径
let url = config.baseUrl + "/ynpstWechatOrder/download-invoice";
let data = { fphm: fphm }; //参数
uni.showLoading({
title: "下载中",
duration: 2000,
});
uni.request({
//uniapp的请求
url: url,
responseType: "arraybuffer", //这里记得设置响应数据格式,不然预览的pdf是空白
data: data,
method: "post", //请求方式
header: {
"content-type": "application/json",
},
success: (response) => {
if (!response) {
uni.showToast({
title: "下载失败",
duration: 2000,
});
}
let pdfData = response.data; //pdfData是后端返回的文件流
//创建blob数据流,并用a标签来下载
let blob = new Blob([pdfData], {
type: "application/pdf;charset=UTF-8",
});
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = `发票${fphm}.pdf`;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
uni.hideLoading(); //关闭loading
uni.showToast({
title: "下载成功",
duration: 2000,
});
},
ail: (err) => {
console.log(err);
},
});
},
文章来源地址https://www.toymoban.com/news/detail-673814.html
文章来源:https://www.toymoban.com/news/detail-673814.html
到了这里,关于uniapp h5页面做文本流的下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!