HarmonyOS 鸿蒙Next中图片上传服务器,同一张照片, 有时可以获取到回调,有时候直接上传失败

HarmonyOS 鸿蒙Next中图片上传服务器,同一张照片, 有时可以获取到回调,有时候直接上传失败 【问题描述】:图片上传到服务器https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-image-22

【问题现象】:问题1:按照开发文档的实例代码 进行开发,同一张照片。
        有时可以通过 UploadTask.on(type: ‘headerReceive’) 获取到回调。
        有时候直接 UploadTask.on(type:‘fail’) 上传失败。TaskState.responseCode 为 17
    问题2: 我在发起请求时,接口需要的参数名为‘image’。我如何对request.uploadFile设置这个参数名

【版本信息】:API17

【复现代码】:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-image-22


更多关于HarmonyOS 鸿蒙Next中图片上传服务器,同一张照片, 有时可以获取到回调,有时候直接上传失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,回复如下

问题1:请参考TaskState,TaskState.responseCode为17返回码是服务器返回 4XX 或 5XX 状态码导致,请检查参数是否正确。

问题2:请问下您后端是如何接收这个image参数的?想要的正确的请求是什么样的?需要确定后端如何接收,才能确定如何对request.uploadFile设置这个参数名

更多关于HarmonyOS 鸿蒙Next中图片上传服务器,同一张照片, 有时可以获取到回调,有时候直接上传失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


用axios试试,不用官网这个

在HarmonyOS Next中,图片上传失败或回调不稳定可能由网络波动、服务器响应超时或系统资源管理策略导致。检查网络连接稳定性,确认服务器接口兼容性。排查上传时设备内存与存储空间是否充足。若使用鸿蒙上传API,需确保参数配置正确,包括文件路径与MIME类型。异步处理可能因生命周期管理出现回调丢失,建议验证回调监听器绑定状态。

针对您提到的图片上传问题,以下分析可能有助于排查:

  1. 关于上传结果不一致(TaskState.responseCode 为 17)

    • 错误码 17 通常与网络连接或服务器响应超时相关。请检查:
      • 网络稳定性:确保设备在网络良好的环境下测试,可尝试切换 Wi-Fi/移动数据对比。
      • 服务器状态:确认服务器端是否偶发处理超时或限制了请求频率。
      • 文件大小:如果图片较大,可能因传输时间过长触发超时机制,建议通过日志监控具体失败时的网络状态。
  2. 设置上传文件的参数名

    • uploadFile 方法中,需通过 name 字段指定参数名。示例:
      let uploadTask = request.uploadFile({
        url: 'YOUR_SERVER_URL',
        name: 'image',  // 此处设置参数名为 image
        fileUrl: 'LOCAL_FILE_PATH',
        header: { 'Content-Type': 'multipart/form-data' }
      });
      
    • 确保服务器端接收参数的名称与此处 name 字段一致。
  3. 其他建议

    • 启用 UploadTask.on('progress') 监听上传进度,辅助判断是否因网络波动导致中断。
    • fail 回调中输出完整错误信息(如 responseCodeerrMsg),结合服务器日志进一步定位问题。

若问题持续存在,建议在复现时抓取完整的网络请求日志,对比成功与失败场景的差异。

回到顶部