当前位置: 首页 > news >正文

昆明营销网站建设图们市建设局网站

昆明营销网站建设,图们市建设局网站,网站链接跳转如何做,微信客户管理系统平台本文介绍如何保存Base64的文件到Download下 参考文档地址: 保存用户文件-Harmony Next 用到的是DOWNLOAD模式保存文件 用户在使用save接口时,可以将pickerMode配置为DOWNLOAD模式,该模式下会拉起授权接口,用户确认后会在公共路径…

本文介绍如何保存Base64的文件到Download下

参考文档地址:

保存用户文件-Harmony Next

用到的是DOWNLOAD模式保存文件

用户在使用save接口时,可以将pickerMode配置为DOWNLOAD模式,该模式下会拉起授权接口,用户确认后会在公共路径download目录下创建用户当前hap包名的文件夹,并通过save接口返回值回传相应的URI,后续用户可以直接将文件保存在该URI下。

本文里面的Base64Utils和JSONutils都是来自于:

@pura/harmony-utils 1.0.2

参考代码如下

 param ="{\"dataBase64\":\"data:audio/midi;base64,TVRoZAAAAAYAAQACAeBNVHJrAAAAIQD/UQMLcbAA/1kCAAAA/1gEBAIYCAD/AQR0dHR0AP8vAE1UcmsAAACrAMAAALB5AACwQAAAsFswALAKQACwB2QAkEdpgXCARwAAkEdVgXCARwAAkEdfgXCARwAAkEdVgXCARwAAkEBfgXCAQAAAkEVVgXCARQAAkD5fgXCAPgAAkENVgXCAQwAAkEdfgXCARwAAkEdVgXCARwAAkEdfgXCARwAAkEdVgXCARwAAkEBfgXCAQAAAkENVgXCAQwAAkEBfgXCQRVUDgEAAgXCARQAA/y8A\",\"fileType\":\"midi\",\"fileName\":\"tttt\"}"if (StringUtils.isStrNotBlank(param)) {const h5CallBackBean: H5CallBackBean | null = JSONUtil.jsonToBean<H5CallBackBean>(H5CallBackBean, param)if (h5CallBackBean) {if ('midi' == h5CallBackBean.fileType) {const fileBase64 = h5CallBackBean.dataBase64if (StringUtils.isStrNotBlank(fileBase64)) {const base64: string = fileBase64.split(",")[1]const numTemp: number = DateUtil.getTodayTime()let uri: string = '';// 请确保 getContext(this) 返回结果为 UIAbilityContextlet context = getContext(this) as common.Context;const documentViewPicker = new picker.DocumentViewPicker(context);const documentSaveOptions = new picker.DocumentSaveOptions();documentSaveOptions.pickerMode = picker.DocumentPickerMode.DOWNLOAD;// documentSaveOptions.newFileNames = [numTemp + '.midi']documentViewPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {if (documentSaveResult.length>0) {uri = documentSaveResult[0];console.info('documentViewPicker.save succeed and uri is:' + uri);//得到uri后,需要使用FileUri做一层转换,才可以做后续读写的操作let path: string = new fileUri.FileUri(uri).path//得到path后拼接文件名let filePath: string = `${path}/${numTemp}.midi`;if (StringUtils.isStrNotBlank(filePath)) {if (UiUtils.saveBase64File(base64,filePath)) {ToastUtil.showToast("保存成功")}}
}}).catch((err: BusinessError) => {console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);})}}}/***保存base64文件** @param context上下文* @param base64base64文件内容* @param filePath文件路径* @returns是否保存成功*/public static saveBase64File(base64: string, filePath: string): boolean {if (!base64 || !filePath) {return false;}const imageBuffer = Base64Util.decodeSync(base64);try {//这边要多加一个fs.OpenMode.CREATE得到创建文件的权限let file  = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);console.info("file fd: " + file.fd);//因为writeSync的入参类型是ArrayBuffer或string,所以这边要使用.buffer转换成ArrayBuffer类型,否则会报错。fs.writeSync(file.fd, imageBuffer.buffer);fs.closeSync(file);} catch (err) {Logger.error(CommonConstants.TAG, `saveBase64File err: ${err}`);return false;}return true;}

需要注意的是:

1.得到uri后,需要使用FileUri做一层转换,才可以做后续读写的操作

2.因为writeSync的入参类型是ArrayBuffer或string,所以这边要使用.buffer转换成ArrayBuffer类型,否则会报错。
     

否则出现Error: Operation not permitted,

防止以后出错,特此记录

http://www.yayakq.cn/news/442398/

相关文章:

  • 平面设计资料网站企业网站建设内容 程序开发
  • 国际化网站设计作品
  • 新乡网站建设怎么用模板做网站
  • 《电子商务网站开发与管理》书籍网站的推广和宣传方式
  • 中国住房和城乡建设部网站建造师天津卓荣建设集团网站
  • 上海网站建设找摩彼如何用易语言做网站
  • 自建网站 微信网页版正规网站建设模板
  • 做代理需要自己的网站吗DANI主题wordpress
  • 网站首页设计尺寸深圳网站建设熊掌号
  • 做挂件像网站镇江唐唐网络科技有限公司
  • vs 2010 网站建设郑州一建集团公司官网
  • 承包建筑工程信息网站网页游戏在线玩链接
  • 吉林省建设监理协会网站百度网盟推广是什么
  • 网站漂浮广告效果阳江市房产信息网官网
  • 高端网站搭建公司专业动漫如何制作
  • 可以做动效的网站公司内网站建设
  • 建设部网站 挂证wordpress 主题详解
  • 个人做网站需要备案吗网站开发就业培训班
  • 石家庄网站建设就找企行家虚拟主机建网站
  • 唐山网站制作公司商城网站开发需求分析
  • 宝安自适应网站建设互联网网站建设问卷调查
  • 福州 网站建设如何查看一个网站是否备案
  • 门户网站信息流广告怎么做开发企业网站费用
  • 济南网站开发xywlcn网站建设网
  • 网站建设在线学习成都交易网站建设
  • 如何做类似优酷的视频网站网络营销做的比较好的企业
  • 网站要怎么样做排名才上得去手机网站建站流程
  • 泰安高新区建设局网站2022百度搜索风云榜
  • 课题组研究网站怎么做免费ppt模板大全网址
  • 做网站开发需要学那些东西网站域名注册商查询