1、以下是返回的数据

2、将返回的数据流转成base64
const pdfBase64 = uni.arrayBufferToBase64(res.data)
3、将pdfBase64打印出来,查看是否转的正确👉测试
以下是完整实现的代码:
uni.request({
url: 'print/' + id,
method: 'GET', // 按你实际请求方式改
timeout: 30000,
// 关键配置:必须指定响应类型为 arraybuffer
responseType: 'arraybuffer',
success: (res) => {
const pdfBase64 = uni.arrayBufferToBase64(res.data)
console.log(pdfBase64)
// 1. 生成文件名
const fileName = `文档_${new Date().getTime()}.pdf`;
// 2. 获取 APP 本地可写目录
const filePath = `_doc/${fileName}`;
// 3. 创建文件并写入 Base64 数据
plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function (entry) {
entry.root.getFile(fileName, { create: true }, function (fileEntry) {
fileEntry.createWriter((writer) => {
console.log(writer)
// 写入成功
writer.onwrite = () => {
console.log("写入成功")
uni.showToast({ title: 'PDF 保存成功', icon: 'success' });
// 打开预览 PDF
openPdf(filePath);
};
console.log("开始写入数据")
writer.writeAsBinary(pdfBase64)
console.log("写入数据完成")
}, (err) => {
console.error("创建写入器失败:", err);
});
}, (err) => {
console.error("创建文件失败:", err);
});
}, (err) => {
console.error("获取目录失败:", err);
});
}
});
还可以使用uni.downloadFile方法
👉具体的使用方法👈