在鸿蒙Next(HarmonyOS NEXT)中,保存Base64图片的步骤如下:
- 解码Base64字符串:将Base64字符串转换为字节数组。
 
- 创建图片文件:在设备存储中创建目标文件。
 
- 写入文件:将字节数据写入文件。
 
示例代码(ArkTS):
import fs from '@ohos.file.fs';
import { BusinessError } from '@ohos.base';
// Base64图片保存函数
async function saveBase64Image(base64Str: string, filePath: string): Promise<void> {
  try {
    // 1. 解码Base64字符串(移除可能的头部信息)
    const cleanBase64 = base64Str.replace(/^data:image\/\w+;base64,/, '');
    const buffer = base64.decodeSync(cleanBase64); // 使用base64模块解码
    // 2. 创建或打开文件
    const file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    // 3. 写入数据
    fs.writeSync(file.fd, buffer);
    // 4. 关闭文件
    fs.closeSync(file);
    console.log('图片保存成功:', filePath);
  } catch (error) {
    console.error('保存失败:', (error as BusinessError).message);
  }
}
// 使用示例
const base64Data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==';
const savePath = '/data/storage/el2/base64/image.png'; // 应用沙箱路径
saveBase64Image(base64Data, savePath);
注意事项:
- 权限配置:在
module.json5中添加存储权限:"requestPermissions": [
  { "name": "ohos.permission.WRITE_IMAGE" }
]
 
- 路径选择:使用沙箱路径(如
/data/storage/el2/base/)避免权限问题。 
- Base64处理:如果字符串包含
data:image/...头部,需先去除。 
依赖模块:
@ohos.file.fs:文件系统操作 
base64(全局可用):Base64解码 
通过以上步骤,即可将Base64图片保存到本地存储。