微信小程序base64文件转换后下载到手机本地

export function downloadBase64File(base64, fileName, fileTyp) {
    // 去除base64字符串中的前缀(如果有的话)
    // let base64Data = base64.split(';base64,').pop();
    
    // 将Base64转换为ArrayBuffer
    const buffer = wx.base64ToArrayBuffer(base64);
    
    // 创建文件路径
    const filePath = `${wx.env.USER_DATA_PATH}/${fileName}.${fileType}`;
    
    // 获取文件系统管理器实例
    const fs = wx.getFileSystemManager();
    
    // 写入文件到指定路径
    fs.writeFile({
        filePath: filePath,
        data: buffer,
        encoding: 'binary',
        success(res) {
            console.log('文件保存成功', res);
    
            // 重命名为中文文件名
            const targetFileName = '学生评语.docx';
            const targetFilePath = `${wx.env.USER_DATA_PATH}/${targetFileName}`;
    
            fs.rename({
                oldPath: filePath,
                newPath: targetFilePath,
                success: () => {
                    console.log('文件名已修改为中文:', targetFileName);
                    // 用户操作(如打开文件)通过右上角保存到手机本地
                    wx.openDocument({
                        filePath: targetFilePath,
                        showMenu: true,
                        success: () => console.log('打开文档成功')
                    });
                },
                fail: (err) => {
                    console.error('重命名失败:', err);
                    wx.showToast({ title: '文件名设置失败', icon: 'none' });
                }
            });
        },
        fail(err) {
            console.error('文件保存失败', err);
        }
    });
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容