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

西安seo网站排名青岛网站制作设计

西安seo网站排名,青岛网站制作设计,如何做菠菜网站代理,wordpress theme 删除本文介绍如何保存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/997027/

相关文章:

  • 电子商务网站建设与管理期末答案茅台镇哪一家网站做的好
  • 山亭网站建设怎么设计公司网页
  • 建设银行 福州招聘网站vue可视化开发工具
  • 用pageadmin做的网站用什么虚拟主机号泰兴网站推广
  • 教育培训网站设计浙江腾鑫建设集团网站
  • 自适应网站建设案例大学生做网站类型
  • 众筹网站怎么做推广之家邀请码
  • 青岛网站排名推广易语言跳到指定网站怎么做
  • 巢湖有没有专门做网站的公司上海抖音推广公司
  • 网站关键词没有指数网站排名外包
  • flash网站开发用什么语言百度关键词权重查询
  • 2014网站建设携程旅游网官方网站 做攻略
  • 镇海区住房建设网站怎么查互联网营销师挣的是谁的钱
  • 浙江建设厅网站施工员报名WordPress配置七牛云
  • 解释网站为什么这样做商城网站建设是 什么
  • 贵州网站建设工作室系统优化因素
  • APP网站建设什么用处百度广告收费
  • 广州商城建站系统百度手机管家
  • 网站推广优化之八大方法网上服务大厅山东理工大学
  • 广州网站开发水平广州亦客网络如何给网站添加外链
  • 如何才能看到国外的设计网站在公司的小语种网站上
  • 建站平台和网站建设的区别网络策划是做什么的
  • 三屏营销型网站建设网站开发人员结构
  • 做导购网站有哪些台州网络推广
  • 免费网站空间 - 百度wordpress页面上下级
  • 厦门网站建设推广哪家好设计本官方网站案例
  • 湛江seo建站北京网站备案地址
  • 长春专业网站制作wordpress 一页一屏
  • 温州公司做网站python基础教程代码
  • 为网站做seo需要什么软件php是用来做网站的吗