HarmonyOS 鸿蒙Next 如何能将某个包中resource/base/media/中自带的图片推送到远程服务器

HarmonyOS 鸿蒙Next 如何能将某个包中resource/base/media/中自带的图片推送到远程服务器 如何获取某个包中自带的图片并将图片推送到远程服务器呢?

2 回复

参考如下demo:

import axios, { AxiosError, AxiosResponse, FormData } from '@ohos/axios';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct UploadFilePage {
  @State message: string = 'Hello World';
  context = this as common.UIAbilityContext

  build() {
    RelativeContainer() {
      Button(this.message)
        .id('UploadFilePageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(async () => {
          let uploadUrl = "xxxx"

          let media: Uint8Array = new Uint8Array(8)
          this.context.resourceManager.getMediaContent($r('app.media.layered_image').id, 120)
            .then((value: Uint8Array) => {
              media = value;
            })
            .catch((error: BusinessError) => {
              console.error(`promise getMediaContent failed, error code: ${error.code}, message: ${error.message}.`);
            });

          let formData = new FormData()
          formData.append('file', media.buffer)

          axios.post<string, AxiosResponse<string>, FormData>(uploadUrl, formData, {
            context: this.context,
            headers: {
              'Content-Type': 'multipart/form-data'
            },
          }).then((res: AxiosResponse) => {
            console.info("ImageUtils", "uploadPhoto", "success:" + JSON.stringify(res.data))
          }).catch((error: AxiosError) => {
            console.error("ImageUtils", "uploadPhoto", "error:" + JSON.stringify(error))
          })
        })
    }
    .height('100%')
    .width('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 如何能将某个包中resource/base/media/中自带的图片推送到远程服务器的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若要将某个包中resource/base/media/目录下自带的图片推送到远程服务器,可以通过以下步骤实现:

  1. 读取本地图片:首先,通过文件系统API访问指定包中的resource/base/media/目录,读取目标图片文件。鸿蒙系统提供了丰富的文件系统操作接口,可用于读取本地资源文件。

  2. 图片数据转换:读取到的图片数据可能需要进行格式转换或编码处理,以便适合网络传输。通常,图片会被转换为字节流(byte array)形式。

  3. 建立网络连接:使用鸿蒙提供的网络通信API,如HTTP或Socket,建立与远程服务器的连接。根据远程服务器的接口要求,选择合适的通信协议和端口。

  4. 发送图片数据:通过已建立的网络连接,将转换后的图片数据作为请求体或消息体发送给远程服务器。发送过程中可能需要进行数据封装和协议处理。

  5. 处理服务器响应:接收并处理远程服务器的响应,确认图片是否成功上传。根据响应内容,进行相应的后续操作。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部