杭州做网站比较出名的公司,海外服务器怎么搭建,自己做的网站打不开,网上超市网站的设计与实现需求#xff1a;
选择相册图片后#xff0c;将文件上传到服务器#xff0c;接口会返回图片地址。
问题#xff1a;
1、鸿蒙自带的文件上传返回值只会返回上传状态#xff0c;不会返回接口返回信息。
类似问题 HarmonyOS上传文件以及权限授权_harmonyos中axios上传文件…需求
选择相册图片后将文件上传到服务器接口会返回图片地址。
问题
1、鸿蒙自带的文件上传返回值只会返回上传状态不会返回接口返回信息。
类似问题 HarmonyOS上传文件以及权限授权_harmonyos中axios上传文件-CSDN博客
2、用axios上传 2.1、接口不通提示ERR_BAD_OPTION_VALUE 2.2、接口通了报错500
具体实现
import axios from ohos/axios
import { AxiosResponse,AxiosError,FormData } from ohos/axios
import picker from ohos.file.picker
import fs from ohos.file.fs;let context getContext(this) as common.UIAbilityContext;
const photoSelectOptions new picker.PhotoSelectOptions();
const photoViewPicker new picker.PhotoViewPicker();
// 过滤选择媒体文件类型为IMAGE
photoSelectOptions.MIMEType picker.PhotoViewMIMETypes.IMAGE_TYPE;
// 选择媒体文件的最大数目
photoSelectOptions.maxSelectNumber 1; photoViewPicker.select(photoSelectOptions).then(async (photoSelectResult) {//当前文件临时地址this.userImg photoSelectResult.photoUris[0] fs.open(uri, fs.OpenMode.READ_ONLY).then((file){let fileName context.cacheDir / file.name// 复制文件到缓存目录下fs.copyFile(file.fd, fileName).then(async(){// 上传let formData new FormData()formData.append(userImageFile, internal://cache/ file.name)formData.append(userName, user)formData.append(source, 1) //这里值必须为string 2.2报错原因const uploadUrl https://上传地址axios.poststring, AxiosResponse返回值类型, FormData(uploadUrl, formData, {//这俩必须有 其他看需求headers: { Content-Type: multipart/form-data},context: getContext(context) //必须加这句 2.1报错的原因}).then(async(res: AxiosResponse返回值类型) {console.info(result JSON.stringify(res.data));this.userImage res?.data?.result}).catch((err: AxiosError) {console.error(error: JSON.stringify(err));})})
})参考链接
华为开发者论坛实例
华为开发者文档-request使用
ohos_axios: 本库基于Axios 原库v1.3.4版本进行适配使其可以运行在 OpenHarmony并沿用其现有用法和特性。