HarmonyOS request.uploadFile 上传文件成功,但是并无服务器数据返回
在使用request.uploadFile 上传相册选中的图片时,进行了沙箱处理,上传看似也成功了,但是没有我方服务器的返回数据。代码:
async upFile(uri: Array<string>) { 
  JLog.d("原图:::" + uri[0]) 
  let header = new Map<Object, string>(); 
  header.set('Content-Type', 'multipart/form-data'); 
  let segments = uri[0].split('/') 
  let fileName = segments[segments.length-1] 
  let realUri = this.context.cacheDir + "/" + fileName 
  JLog.d("沙箱图处理:::realUri:" + realUri) 
  try { 
    let file =  fs.openSync(uri[0]) 
    fs.copyFileSync(file.fd, realUri) 
  } catch (err) { 
    JLog.e('err.code : ' + err.code + ', err.message : ' + err.message) 
  } 
  let files: Array<request.File> = [{ filename: fileName, name: "file", uri: `internal://cache/${fileName}`, type: 'jpg' }] 
  let data: Array<request.RequestData> = [{ name: 'TenantID', value: 'ysz' },{ name: 'file', value: 'files' }]; 
  let uploadConfig: request.UploadConfig = { 
    url: ApiUrl.UPLOAD_IMAGE_URL, 
    header: header, 
    method: 'POST', 
    files: files, 
    data: data 
  } 
  try { 
    let context = getContext(this) as common.UIAbilityContext; 
    request.uploadFile(context, uploadConfig) 
      .then((uploadTask: request.UploadTask) => { 
        uploadTask.on('complete', (taskStates: Array<request.TaskState>) => { 
          for (let i = 0; i < taskStates.length; i++) { 
            JLog.d(`upload complete taskState: ${JSON.stringify(taskStates[i])}`); 
          } 
        }); 
        uploadTask.on("progress", (size, tot) => { 
          JLog.d("进度" + size + '/' + tot) 
        }) 
      }) 
      .catch((err: BusinessError) => { 
        JLog.e(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`); 
      }) 
  } catch (error) { 
    let err: BusinessError = error as BusinessError; 
    JLog.e(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`); 
  } 
}打印部分日志:
原图:::file://media/Photo/8/IMG_1715853988_003/IMG_20240516_180448.jpg 
沙箱图处理:::realUri:/data/storage/el2/base/haps/entry/cache/IMG_20240516_180448.jpg 
进度3647696/3647696 
upload complete taskState: {“path”:"/data/storage/el2/base/haps/entry/cache/IMG_20240516_180448.jpg",“responseCode”:0,“message”:""}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS request.uploadFile 上传多文件 
1628浏览  • 1回复 待解决
HarmonyOS request.uploadFile问题 
961浏览  • 1回复 待解决
request.uploadFile(context, uploadConfig) 报错 
2068浏览  • 1回复 待解决
HarmonyOS 图片上传服务器获取接口返回数据 
1238浏览  • 1回复 待解决
HarmonyOS 使用@ohos.request 上传图片后,获取不到服务器返回 
1752浏览  • 1回复 待解决
HarmonyOS 文件上传服务器问题 
1571浏览  • 1回复 待解决
HarmonyOS  request.uploadFile 报错 empty error message 
1625浏览  • 1回复 待解决
HarmonyOS 上传文件,获取不到服务器返回的图片路径 
1453浏览  • 1回复 待解决
HarmonyOS 文件上传成功后,如何获取服务器回传的信息 
990浏览  • 1回复 待解决
HarmonyOS  request.uploadFile上传如何忽略掉不正确的SSL证书 
1060浏览  • 1回复 待解决
HarmonyOS 使用request.uploadFile 提示401,filePath is not valid 
1336浏览  • 1回复 待解决
request.uploadFile报错13400001,file operation error ,后端服务也没收到接口请求 
2308浏览  • 0回复 待解决
HarmonyOS request.uploadFile是multipart/form-data的方式么 
1279浏览  • 1回复 待解决
HarmonyOS Rcp.post上传图库文件至服务器 
2014浏览  • 1回复 待解决
HarmonyOS 用相机拍一张头像上传时,使用request.uploadfile函数,报这个错误 
1374浏览  • 1回复 待解决
HarmonyOS  上传图片到服务器 
1159浏览  • 1回复 待解决
HarmonyOS 生成应用描述文件并上传至服务器 
1661浏览  • 1回复 待解决
request.upload上传成功没有返回上传文件在服务端的地址连接,这个有解决方案没? 
4500浏览  • 1回复 待解决
HarmonyOS request.uploadFile只回调了progress,没有回调complete呢 
1215浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何使用HarmonyOS NEXT上传文件到服务器? 
1278浏览  • 1回复 待解决
HarmonyOS 有没有提供上传大文件到服务器的api 
1064浏览  • 1回复 待解决
HarmonyOS 选择相册图片,上传到服务器 
1353浏览  • 1回复 待解决
HarmonyOS使用API request.uploadFile 上传多张图片时,服务端会收到多个请求,每个请求只接收到一张图片 
1644浏览  • 1回复 待解决
HarmonyOS  如何展示服务器接口返回的html格式数据 
1186浏览  • 1回复 待解决
HarmonyOS WebSocket调用connect连接服务器,连接成功,解析返回HTTPS失败 
1307浏览  • 1回复 待解决





















可以参考开启on(‘headerReceive’),其中响应体的 header 和 body 都会在这个 header object 里存放https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-request-V5#onheaderreceive7