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

自学网站编程男人女人做那个网站

自学网站编程,男人女人做那个网站,wordpress下载5.11,西安网站制作开发本文介绍如何保存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/78919/

相关文章:

  • 广州英铭网站建设想给公司做个网站怎么做
  • 网上推广网站做球形全景的网站
  • 大同泰瑞集团建设有限公司网站小程序商城属于电商吗
  • 楚雄市网站建设公司wordpress 媒体库不显示图片
  • 网站后台上传wordwordpress评论选择头像
  • 建网站域名注册移动网站开发的视频下载
  • 织梦网站栏目不能更新网站建设个人信息英文翻译
  • 法国化妆品进口报关做网站景观设计网站推荐
  • 深圳优秀网站设计律师事务所网站建设方案
  • 网络营销怎么做网站网站不备案 能打开吗
  • 太阳宫网站建设汕头澄海玩具厂
  • 万象城网站建设邢台123贴吧
  • 西宁做网站制作的公司哪家好wordpress用户搜索次数插件
  • 怎么做自己的网站链接怎么把网站建设推广出去
  • 青海wap网站建设哪家好潍坊网站建设公司哪家好
  • 网站建设 项目文档网站建设苏州
  • 二手车网站源码下载左右翻网站模版
  • 廊坊网站专业制作合肥建站网站平台
  • 新手站长做游戏网站好吗青岛seo用户体验
  • 网站推广优化建设自学摄影教程的网站有哪些
  • 静海网站建设制作网络营销的好处和优势
  • 网站开发的目的意义特色创新wordpress 底部代码
  • 门户网站开发需求免费发布招聘信息
  • 有没有网站建设的教程价格查询网
  • 公众号建网站wordpress 搜索 排除分类
  • 网站建设好后怎么更新内容关于网站推广
  • 安全的南昌网站制作网站建设在哪里找客户
  • 设计公司网站建设模板图wordpress磁力链插件
  • 网站购物车怎么做一张图看懂企业所得税
  • 家庭网络做网站html5 网站源代码