HarmonyOS使用axios进行相册图片上传操作失败

使用axios进行图片上传失败 报错提示 Error: empty error message, 不知道是什么原因导致的。代码:

const photoViewPicker = new picker.PhotoViewPicker(); 
let ctx = getContext(this) 
let photoSelectResult = await photoViewPicker.select(photoSelectOptions) 
uris = photoSelectResult.photoUris; 
for (let index = 0; index < uris.length; index++) { 
  const element = uris[index]; 
  console.error('====>uri is:' + element + ', start read file') 
  fs.open(element, (err, file) => { 
    if (err) { 
      console.error("====>file open failed with error message: " + err.message + ", error code: " + 
      err.code); 
    } else { 
      let filepath = `${ctx.cacheDir}/${file.name}`; 
      console.error('====>filepath is:' + filepath + ', start copy file') 
      fs.copyFile(file.fd, filepath, () => { 
        // 上传的uri 
        let uri = fileUri.getUriFromPath(filepath) 
        console.error("文件uri路径:" + uri) 
        let realUri = `internal://cache/${file.name}`; 
        console.error("real uri:" + realUri) 
        // 执行上传 
        let request: AxiosRequestConfig<FormData> = { 
          url: config.subUrl, 
          headers: { 
            'Content-Type': 'multipart/form-data' 
          }, 
          context: getContext(), 
          method: "post", 
          params: params, 
          data: formData 
        } 
        let resp: AxiosResponse<HttpResponseModel> = 
          await axios.request<HttpResponseModel, AxiosResponse<HttpResponseModel>, FormData>(request) 
      }); 
    } 
  }) 
} 
console.error('photoViewPicker.select to file succeed and uris are:' + uris); 
} catch (err) { 
  console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`); 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.

错误提示:

E     [ecmascript] Pending exception before ToObject called in line:239, exception details as follows: 
Error: empty error message 
at upload (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/upload.js:140:1) 
at anonymous (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/index.js:31:1) 
at anonymous (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/index.js:26:1) 
at dispatchRequest (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/core/dispatchRequest.js:51:1) 
at request (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/core/Axios.js:170:1) 
at wrap (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/helpers/bind.js:5:1) 
at apiRequest (entry/src/main/ets/core/network/service.ets:90:15) 
[ecmascript] Pending exception before Has called in line:1891, exception details as follows: 
Error: empty error message 
at upload (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/upload.js:140:1) 
at anonymous (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/index.js:31:1) 
at anonymous (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/index.js:26:1) 
at dispatchRequest (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/core/dispatchRequest.js:51:1) 
at request (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/core/Axios.js:170:1) 
at wrap (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/helpers/bind.js:5:1) 
at apiRequest (entry/src/main/ets/core/network/service.ets:90:15) 
[ecmascript] Pending exception before IsMixedDebugEnabled called in line:3573, exception details as follows: 
Error: empty error message 
at upload (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/upload.js:140:1) 
at anonymous (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/index.js:31:1) 
at anonymous (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/adapters/ohos/index.js:26:1) 
at dispatchRequest (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/core/dispatchRequest.js:51:1) 
at request (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/core/Axios.js:170:1) 
at wrap (oh_modules/.ohpm/@ohos+axios@2.2.0/oh_modules/@ohos/axios/src/main/ets/components/lib/helpers/bind.js:5:1) 
at apiRequest (entry/src/main/ets/core/network/service.ets:90:15) 
[default] ConstructorOptimize:2520 occur exception need return
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
HarmonyOS
2024-09-12 13:08:43
1466浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

在请求中未设置请求头,headers: { ‘Content-Type’: ‘multipart/form-data’ },请参考gitee的代码实例:https://gitee.com/openharmony-sig/ohos_axios#%E5%BD%93%E4%B8%8A%E4%BC%A0%E7%9A%84%E5%86%85%E5%AE%B9%E4%B8%BAarraybuffer%E6%97%B6%E7%94%A8%E6%B3%95%E5%A6%82%E4%B8%8B

formData里有其他字段会触发empty error message问题,只包含file这一个字段可以请求成功:

formData.append(‘file’, internalUri)
  • 1.
分享
微博
QQ
微信
回复
2024-09-12 17:16:04


相关问题
HarmonyOS axios上传文件失败
828浏览 • 1回复 待解决
使用axios上传图片时候错误
737浏览 • 1回复 待解决
HarmonyOS 如何使用Axios框架上传图片
839浏览 • 1回复 待解决
HarmonyOS axios如何上传图片
659浏览 • 1回复 待解决
HarmonyOS axios如何上传多张图片
772浏览 • 1回复 待解决
HarmonyOS 图片上传失败
777浏览 • 1回复 待解决
HarmonyOS 上传图片失败
1122浏览 • 1回复 待解决
HarmonyOS 使用canvas进行图片水印操作
827浏览 • 1回复 待解决
HarmonyOS 关于从相册中选择图片上传
746浏览 • 1回复 待解决
拉起相册选择图片页面失败
2717浏览 • 1回复 待解决
HarmonyOS如何上传图片到模拟器相册
1939浏览 • 1回复 待解决
HarmonyOS 怎么对图片进行压缩上传
878浏览 • 1回复 待解决
HarmonyOS h5客服无法上传相册图片
755浏览 • 1回复 待解决
基于PhotoViewPicker对图片进行操作
1742浏览 • 1回复 待解决
通过web上传图片进行预览
1639浏览 • 1回复 待解决