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

外贸建站新闻资讯目录型搜索引擎有哪些

外贸建站新闻资讯,目录型搜索引擎有哪些,web网站开发应该学神呢,一览英才网本文介绍如何保存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.15wanjia.com/news/19021.html

相关文章:

  • emlog怎么换wordpress百度seo优化推广
  • 做外贸英语网站seo上海公司
  • 深圳做网站知名排行腾讯广告联盟
  • 建设网站课程设计摘要百度登录
  • 搜搜网站收录提交入口腾讯云域名
  • 九_网站建设日程表百度网站链接提交
  • 做网站用什么语言制作最安全怎么在百度制作自己的网站
  • 广州企业网站建设哪家服务好网站打开速度优化
  • 网页制作工具分为哪两类seo搜索是什么
  • wdcp创建多个网站搜索风云榜
  • 江西南昌网站制作百度精简版入口
  • wordpress用不了了seo优化博客
  • 资料代做网站百度销售推广
  • 做单网站杭州网站优化方案
  • 免费的毕业论文网站宁波seo外包优化
  • 淮南网云小镇房价站长工具seo查询软件
  • 导航仪企业网站源码百度云盘官网登录入口
  • 高端手机网站平台seo实战密码在线阅读
  • 重庆政府app渝快办青岛网站seo分析
  • 规划一个电子商务网站网站推广服务外包
  • 为什么不自己做购物网站百度知道官网
  • 模板网在线制作seo外包服务方案
  • 南京做网站优化的企业苏州百度
  • 网站会员管理南京seo招聘
  • h5网站设计今日时政新闻热点
  • 三亚做网站多少钱一平方seo网站推广怎么做
  • 网站开发协义semen
  • 二维码网页制作价格武汉seo招聘信息
  • 专业网站建设比较好网站开发外包
  • 青岛建设集团招聘信息网站万网域名注册流程