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

HarmonyNext上传用户相册图片到服务器

图片选择就不用说了,直接用

无须申请权限 。

上传图片,步骤和android对比稍微有点复杂,可能是为了安全性考虑,需要将图片先拷贝到缓存目录下面,然后再上传,当然你也可以转成Base64,然后和服务端沟通。

这里是拷贝到缓存目录中

拷贝函数是:

public static async copyFileToCache(cacheDir: string, uri: string): Promise<string> {let id = uri.split('/').pop()?.split('.')[0];let imagePath = `${cacheDir}/${id}.jpg`;let file = await fileIo.open(uri, fs.OpenMode.READ_ONLY);try {fileIo.copyFileSync(file.fd, imagePath);} catch (err) {logger.info(`copyFileToCache copyFileSync err = ${err}`);}await fileIo.close(file.fd);return imagePath;
}

如果是列表,你也可以循环操作

上传是用的axios:

axios.post<HdResponse<UserPhotoBean>, AxiosResponse<HdResponse<UserPhotoBean>>, FormData>(BasicConstant.REQUES_URL +
AppApi.UPLOAD_PHOTO, formData, {headers: {'Content-Type': 'multipart/form-data'},context: context,onUploadProgress: (progressEvent: AxiosProgressEvent): void => {console.info(progressEvent && progressEvent.loaded && progressEvent.total ?Math.ceil(progressEvent.loaded / progressEvent.total * 100) + '%' : '0%');},
}
).then((res: AxiosResponse<HdResponse<UserPhotoBean>>) => {console.info("result" + JSON.stringify(res.data));resolve(res.data)
}).catch((err: AxiosError) => {reject()console.error("error:" + JSON.stringify(err));
})

至此,所有操作就完成了

http://www.lryc.cn/news/538493.html

相关文章:

  • WebAssembly 3.0发布:浏览器端高性能计算迎来新突破!
  • 计算机组成原理—— 外围设备(十三)
  • 面试题之Vuex,sessionStorage,localStorage的区别
  • window中git bash使用conda命令
  • 象棋掉落动画(局部旋转动画技巧)
  • Pycharm 2024在解释器提供的python控制台中运行py文件
  • 课题推荐:高空长航无人机多源信息高精度融合导航技术研究
  • 《DeepSeek训练算法:开启高效学习的新大门》
  • promise用法总结以及手写promise
  • 春招项目=图床+ k8s 控制台(唬人专用)
  • Android 11.0 系统settings添加ab分区ota升级功能实现二
  • 【Spring+MyBatis】_图书管理系统(上篇)
  • 什么是3D视觉无序抓取?
  • 【Java】理解字符串拼接与数值运算的优先级
  • [250217] x-cmd 发布 v0.5.3:新增 DeepSeek AI 模型支持及飞书/钉钉群机器人 Webhook 管理
  • 渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)
  • Linux、Docker与Redis核心知识点与常用命令速查手册
  • DeepSeek HuggingFace 70B Llama 版本 (DeepSeek-R1-Distill-Llama-70B)
  • Playwright入门之---命令
  • Java基于 SpringBoot+Vue的微信小程序跑腿平台V2.0(附源码,文档)
  • Fastapi + vue3 自动化测试平台(5)-- 封装树形结构列表生成器
  • 【项目实战】日志管理和异步任务处理系统
  • CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构
  • WPF-数据转换器
  • 09 解决方案 - 开源机器人+具身智能+AI
  • 2025 BabitMF 第一期开源有奖活动正式开启 !
  • 项目管理十大领域是哪些
  • 期权帮|股指期货的有效止盈止损策略?
  • PCL 基于视椎体裁剪点云
  • @Mapper(componentModel = MappingConstants.ComponentModel.SPRING)