HarmonyOS 鸿蒙Next请问上传图片接口的参数需要设计成什么格式?
HarmonyOS 鸿蒙Next请问上传图片接口的参数需要设计成什么格式?
更多关于HarmonyOS 鸿蒙Next请问上传图片接口的参数需要设计成什么格式?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
参考下这个demo
import picker from '@ohos.file.picker';
import fs from '@ohos.file.fs';
import axios, { AxiosError, AxiosProgressEvent, AxiosResponse } from '@ohos/axios'
import { FormData } from '@ohos/axios'
import { common } from '@kit.AbilityKit';
@Entry
@Component
struct Index {
@State message: string = 'hello World';
context = getContext(this) as common.UIAbilityContext
build() {
Button('选择').onClick(() => {
let uris: Array<string> = [];
let documentViewPicker = new picker.PhotoViewPicker();
documentViewPicker.select({
MIMEType: picker.PhotoViewMIMETypes.IMAGE_TYPE,
maxSelectNumber: 1
}).then((photoSelectResult: picker.PhotoSelectResult) => {
uris = photoSelectResult.photoUris;
console.info('photoViewPicker.select to file succeed and uris are:' + uris);
let fileSource = fs.openSync(uris[0], fs.OpenMode.READ_ONLY);
let fileDes =
fs.openSync(`${this.context.cacheDir}/1.jpg`, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.copyFileSync(fileSource.fd, fileDes.fd)
fs.closeSync(fileSource);
fs.closeSync(fileDes);
let formData = new FormData()
formData.append('file', `${this.context.cacheDir}/1.jpg`); //uri支持传入沙箱路径
// 发送请求
// 发送请求
axios.post<string, AxiosResponse<string>, FormData>('https://www.xxx.com/upload', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
context: getContext(this),
onUploadProgress: (progressEvent: AxiosProgressEvent): void => {
console.info(progressEvent && progressEvent.loaded && progressEvent.total ? Math.ceil(progressEvent.loaded / progressEvent.total * 100) + '%' : '0%');
},
}).then((res: AxiosResponse<string>) => {
console.info("result" + JSON.stringify(res.data));
}).catch((err: AxiosError) => {
console.error("error:" + JSON.stringify(err));
})
})
})
}
}
更多关于HarmonyOS 鸿蒙Next请问上传图片接口的参数需要设计成什么格式?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
感谢,已经解决了, 是路径写错了
在HarmonyOS鸿蒙Next系统中,上传图片接口的参数设计通常需要考虑以下几个核心要素,以确保接口的高效性和易用性:
-
图片文件:作为接口的主要参数,图片文件通常以二进制数据流(byte array)的形式传递。这样可以直接处理原始图片数据,避免在传输过程中因格式转换导致的质量损失。
-
文件信息:除了图片数据本身,还可以包含文件的元数据,如文件名(string类型)、文件类型(MIME类型,如image/jpeg、image/png等)、文件大小(long类型,单位字节)等,这些信息有助于接收端正确解析和处理图片文件。
-
附加参数:根据具体业务需求,可能还需要传递一些附加参数,如用户ID(用于标识上传者)、图片描述(string类型,用于存储图片的相关说明)等。
综上所述,上传图片接口的参数格式可以设计为一个包含多个字段的数据结构,如JSON对象,其中包含二进制图片数据(Base64编码或直接以二进制流形式传输,取决于接口设计)、文件信息(文件名、文件类型、文件大小)以及任何必要的附加参数。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html