好喜欢猫
好喜欢猫
  • 发布:2024-12-12 11:39
  • 更新:2024-12-12 11:39
  • 阅读:37

writer.write()写入pdf异常

分类:uni-app

txt文件写入字符串是没问题的,换成pdf,写入二进制数据就不行了,异常里是null,有大佬知道如何解决吗?

代码片段如下:

if (res && res.data instanceof ArrayBuffer) {  
                    // await this.validatePDF(res.data)/*  */  
                    console.log('获取到的二进制数据:', res.data);  
                    const fileName = 'downloadedFile.pdf';  
                    const filePath = `_doc/${fileName}`;  
                    plus.android.requestPermissions(  
                        ['android.permission.WRITE_EXTERNAL_STORAGE'],  
                        (result) => {  
                            console.log('存储权限请求结果:', result);  
                            if (result.granted) {  
                                plus.io.resolveLocalFileSystemURL('_doc/', (entry) => {  
                                    console.log('目录入口:', entry);  
                                    entry.getFile(fileName, {  
                                        create: true  
                                    }, (fileEntry) => {  
                                        console.log('获取到的文件条目:', fileEntry);  
                                        console.log('fileEntry 名称:', fileEntry.name);  
                                        console.log('fileEntry 路径:', fileEntry.fullPath);  
                                        console.log('是否为文件:', fileEntry.isFile);  
                                        console.log('是否为目录:', fileEntry.isDirectory);  
                                        fileEntry.createWriter(  
                                            (writer) => {  
                                                console.log('Writer 创建成功:', writer);  
                                                writer.onerror = (err) => {  
                                                    console.error('文件写入失败:', err);  
                                                };  

                                                writer.onwriteend = () => {  
                                                    console.log('写入操作已完成');  
                                                };  
                                                // console.log(new Uint8Array(res.data)); //二进制  
                                                // const binaryData = new Uint8Array(res.data);  
                                                const binaryData = new Uint8Array(res.data);  
                                                // console.log(binaryData);  
                                                try {  
                                                    // console.log(binaryData);  
                                                    console.log('开始写入内容...');  
                                                    writer.write(binaryData);  
                                                    // writer.writeAsBinary(binaryData)  
                                                } catch (e) {  
                                                    console.error('写入异常:', e);  
                                                }  
                                                writer.onwrite = () => {  
                                                    console.log('文件写入成功:', fileEntry  
                                                        .fileName);  
                                                    // 获取本地路径  
                                                    const localFilePath = plus.io  
                                                        .convertLocalFileSystemURL(  
                                                            fileEntry.fullPath);  
                                                    console.log('本地文件路径:', localFilePath);  
                                                    // 打开文件  
                                                    uni.openDocument({  
                                                        filePath: localFilePath,  
                                                        showMenu: true,  
                                                        success: function() {  
                                                            console.log(  
                                                                '打开文档成功');  
                                                        },  
                                                        fail: function(err) {  
                                                            console.error(  
                                                                '打开文档失败:',  
                                                                err);  
                                                        },  
                                                    });  
                                                };  
                                            },  
                                            (error) => {  
                                                console.error('创建 Writer 失败:', error);  
                                            }  
                                        );  
                                    });  
                                });  
                            } else {  
                                console.error('存储权限请求失败');  
                                this.$showToast('权限请求失败');  
                            }  
                        },  
                        (err) => {  
                            console.error('存储权限请求失败:', err);  
                            this.$showToast('权限请求失败');  
                        }  
                    );  
                } else {  
                    console.error('未获取到有效的二进制数据');  
                    this.$showToast('文件下载失败');  
                }
2024-12-12 11:39 负责人:无 分享
已邀请:

要回复问题请先登录注册