当前位置:   article > 正文

鸿蒙Arkts上传图片并获取接口返回信息

鸿蒙Arkts上传图片并获取接口返回信息

需求:

选择相册图片后,将文件上传到服务器,接口会返回图片地址。

问题:

1、鸿蒙自带的文件上传返回值只会返回上传状态,不会返回接口返回信息。

类似问题 HarmonyOS上传文件以及权限授权_harmonyos中axios上传文件-CSDN博客

2、用axios上传

        2.1、接口不通,提示ERR_BAD_OPTION_VALUE 

        2.2、接口通了,报错500

具体实现:

  1. import axios from '@ohos/axios'
  2. import { AxiosResponse,AxiosError,FormData } from '@ohos/axios'
  3. import picker from '@ohos.file.picker'
  4. import fs from '@ohos.file.fs';
  5. let context = getContext(this) as common.UIAbilityContext;
  6. const photoSelectOptions = new picker.PhotoSelectOptions();
  7. const photoViewPicker = new picker.PhotoViewPicker();
  8. // 过滤选择媒体文件类型为IMAGE
  9. photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
  10. // 选择媒体文件的最大数目
  11. photoSelectOptions.maxSelectNumber = 1;
  12. photoViewPicker.select(photoSelectOptions).then(async (photoSelectResult) => {
  13. //当前文件临时地址
  14. this.userImg = photoSelectResult.photoUris[0]
  15. fs.open(uri, fs.OpenMode.READ_ONLY).then((file)=>{
  16. let fileName = context.cacheDir + '/' + file.name
  17. // 复制文件到缓存目录下
  18. fs.copyFile(file.fd, fileName).then(async()=>{
  19. // 上传
  20. let formData = new FormData()
  21. formData.append('userImageFile', "internal://cache/"+ file.name)
  22. formData.append('userName', 'user')
  23. formData.append('source', '1') //这里值必须为string ,2.2报错原因
  24. const uploadUrl = 'https://上传地址'
  25. axios.post<string, AxiosResponse<返回值类型>, FormData>(uploadUrl, formData, {
  26. //这俩必须有 其他看需求
  27. headers: { 'Content-Type': 'multipart/form-data'},
  28. context: getContext(context) //必须加这句 2.1报错的原因
  29. }).then(async(res: AxiosResponse<返回值类型>) => {
  30. console.info("result" + JSON.stringify(res.data));
  31. this.userImage = res?.data?.result
  32. }).catch((err: AxiosError) => {
  33. console.error("error:" + JSON.stringify(err));
  34. })
  35. })
  36. })

参考链接:

华为开发者论坛实例

华为开发者文档-request使用

ohos_axios: 本库基于Axios 原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/723272
推荐阅读
相关标签
  

闽ICP备14008679号