后端返回数据流的格式

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方法

👉具体的使用方法👈

相关推荐
憧憬成为web高手2 小时前
ACTF 12307复现
前端·bootstrap·html
biter down3 小时前
14:pytest-order 插件 顺序控制案例
开发语言·python·pytest
wordbaby3 小时前
Axios 上传大文件崩溃:鸿蒙 RNOH 下 XHR 返回空响应头引发的"假失败"
前端·react native
郝学胜-神的一滴3 小时前
Qt 高级开发 009: C++ Lambda 表达式
开发语言·c++·qt·软件构建
wordbaby3 小时前
React Native 列表分页实战:下拉刷新与上拉加载的工程化方案
前端·react native
星栈独行3 小时前
我在 Rust 全栈项目里用 JWT 做无状态认证
开发语言·后端·rust·前端框架·开源·github·web
石山代码4 小时前
C++ 轻量级日志系统
开发语言·c++
wordbaby4 小时前
脱离 Tab 栏的艺术:React Native 全屏子页面的导航架构实践
前端·react native·harmonyos
陈随易4 小时前
Redis 8.8发布,一定要更新
前端·后端·程序员
小技与小术4 小时前
玩转Flask
开发语言·python·flask