HarmonyOS 鸿蒙Next ArkTS如何选择本地图片文件并上传到第三方图床?
HarmonyOS 鸿蒙Next ArkTS如何选择本地图片文件并上传到第三方图床?
如图,试图通过第三方axios库来实现
第一次参照的是图床的接口文档,结果返回201permission denied
第二次参照的是axios库的开发文档,选择文件后用原生request,结果返回错误代码13900002
楼主解决了吗?我也是用axios传也是报错误代码13900002
let formData = new FormData(); if (params) { for (const key of Object.keys(params)) { formData.append(key, Reflect.get(params, key)); HttpLog.debug(TAG, "formData.append:key=" + key + " value= " + Reflect.get(params, key)) } }axios.post<string, AxiosResponse<string>, FormData>(url, formData, { headers: { ‘Content-Type’: ‘multipart/form-data’ }, context: getContext(), onUploadProgress: (progressEvent: AxiosProgressEvent): void => { if (progressEvent && progressEvent.loaded && progressEvent.total) {
}
}, timeout: timeout ? timeout : HttpConstant.defaultTimeout, client: “Keep-Alive”, })
已解决
可以参考一下这帖子
上传图库图片到服务器就这么简单
https://developer.huawei.com/consumer/cn/forum/topic/0208122934665172206?fid=0101587866109860105
他这个帖子是用原生requestupload传的,我是在用axios传的时候出现的问题
在HarmonyOS鸿蒙Next ArkTS中,选择本地图片文件并上传到第三方图床,可以通过以下步骤实现:
-
选择图片:
- 使用
PhotoViewPicker
组件来选择图片。首先实例化PhotoViewPicker
和PhotoSelectOptions
,然后设置MIME类型为图片,并指定最大选择数量为1。最后,调用select
方法选择图片,并获取图片的URI。
- 使用
-
拷贝图片到应用沙箱目录:
- 使用
fs
模块将选中的图片从原URI拷贝到应用的沙箱目录(如cacheDir
)中。这是因为上传功能通常不支持直接上传本地相册的文件,而需要上传应用缓存文件路径下的文件。
- 使用
-
上传图片到第三方图床:
- 使用
http
或request
模块构建HTTP POST请求,将拷贝到沙箱目录中的图片作为MultipartFile上传到第三方图床。在请求中,需要设置正确的Content-Type
为multipart/form-data
,并指定文件的名称和类型。
- 使用
-
处理响应:
- 接收并处理第三方图床返回的响应,通常包含图片的在线地址等信息。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。