HarmonyOS 鸿蒙Next ArkTS如何选择本地图片文件并上传到第三方图床?

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ArkTS如何选择本地图片文件并上传到第三方图床?

如图,试图通过第三方axios库来实现

第一次参照的是图床的接口文档,结果返回201permission denied

第二次参照的是axios库的开发文档,选择文件后用原生request,结果返回错误代码13900002

cke_7862.png

5 回复

楼主解决了吗?我也是用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”, })

他这个帖子是用原生requestupload传的,我是在用axios传的时候出现的问题

在HarmonyOS鸿蒙Next ArkTS中,选择本地图片文件并上传到第三方图床,可以通过以下步骤实现:

  1. 选择图片

    • 使用PhotoViewPicker组件来选择图片。首先实例化PhotoViewPickerPhotoSelectOptions,然后设置MIME类型为图片,并指定最大选择数量为1。最后,调用select方法选择图片,并获取图片的URI。
  2. 拷贝图片到应用沙箱目录

    • 使用fs模块将选中的图片从原URI拷贝到应用的沙箱目录(如cacheDir)中。这是因为上传功能通常不支持直接上传本地相册的文件,而需要上传应用缓存文件路径下的文件。
  3. 上传图片到第三方图床

    • 使用httprequest模块构建HTTP POST请求,将拷贝到沙箱目录中的图片作为MultipartFile上传到第三方图床。在请求中,需要设置正确的Content-Typemultipart/form-data,并指定文件的名称和类型。
  4. 处理响应

    • 接收并处理第三方图床返回的响应,通常包含图片的在线地址等信息。

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

回到顶部