HarmonyOS 文件上传报错

调用 request.uploadFile 的时候报错

Error: the parameters check fails   this is fail path@431a5ed1

代码如下:

uploadFile() {
  // 上传任务配置项
  let header = new Map<Object, string>();
  header.set('partner_id', this.partnerId);
  header.set('user_number', this.userNumber);
  let files: Array<request.File> = [
    { filename: 'wenzai_logs', name: 'wenzai_logs', uri: 'internal:/data/storage/el2/base/haps/entry/files/wenzai_logs.zip' , type: 'zip' }
  ]
  let requestData: Array<request.RequestData> = [{ name: 'name', value: 'value' }];
  let uploadConfig: request.UploadConfig = {
    url: API_HOST_WEB[this.deployType] + UP_LODE_LOG_FILE,
    header: header,
    method: 'POST',
    files: files,
    data: requestData
  }
  try {
    request.uploadFile(context, uploadConfig)
      .then((uploadTask: request.UploadTask) => {
        uploadTask.on('complete', (taskStates: Array<request.TaskState>) => {
          for (let i = 0; i < taskStates.length; i++) {
            console.info(`upload complete taskState: ${JSON.stringify(taskStates[i])}`);
          }
        });
      })
      .catch((err: BusinessError) => {
        console.error(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`);
      })
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error(`Invoke uploadFile failed, code is ${err.code}, message is ${err.message}`);
  }
}

请帮忙看下哪个地方写错了

HarmonyOS
2024-12-23 15:12:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

根据文档当前能力如此,当前只支持上传cache目录下的文件, 非cache目录下上传下载解决方案: 将公共路径的文件(picker选择),拷贝至沙箱路径中,可完成上传。这边提供一个demo参考一下

Demo:

pickerPhoto() {
  try {
    let options = new picker.PhotoSelectOptions();
    options.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
    options.maxSelectNumber = 1;
    let p = new picker.PhotoViewPicker();
    p.select(options).then((res: picker.PhotoSelectResult) => {
      console.info("tag photo is uri" + res.photoUris[0])
      this.saveFile(res.photoUris[0]);
    })
  } catch (e) {
    console.error("tag select tailed..")
  }
}

async
saveFile(uri:
string
)
{ 
  // 将公共目录的文件,拷贝至沙箱路径 
  let destDist = getContext(this).cacheDir + "/test.png";
  let src = fs.openSync(uri, fs.OpenMode.READ_ONLY);
  let dst = fs.openSync(destDist, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  fs.copyFileSync(src.fd, dst.fd);
}

应用文件上传下载,可以参考最新更新的文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-file-upload-download-V5

分享
微博
QQ
微信
回复
2024-12-23 19:22:03
相关问题
HarmonyOS上传报如下错误
533浏览 • 1回复 待解决
上传文件接口报错 ,该怎么处理啊?
1161浏览 • 1回复 待解决
HarmonyOS 录音上传文件
482浏览 • 1回复 待解决
HarmonyOS 上传文件问题
409浏览 • 1回复 待解决
HarmonyOS上传文件问题
897浏览 • 1回复 待解决
HarmonyOS 如何上传文件
455浏览 • 1回复 待解决
HarmonyOS 文件上传无法解析文件地址
411浏览 • 1回复 待解决
HarmonyOS 上传文件的demo
466浏览 • 1回复 待解决
HarmonyOS文件上传怎么写
1018浏览 • 1回复 待解决
HarmonyOS axios上传文件失败
432浏览 • 1回复 待解决
HarmonyOS web组件上传文件
597浏览 • 1回复 待解决
HarmonyOS 上传文件相关Demo
982浏览 • 1回复 待解决
HarmonyOS 上传软件包报错991
388浏览 • 1回复 待解决
HarmonyOS 文件上传入参设置
219浏览 • 1回复 待解决
HarmonyOS 文件上传HEADER如何配置
201浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
1127浏览 • 1回复 待解决
HarmonyOS web上传文件和图片
528浏览 • 1回复 待解决
HarmonyOS request文件上传问题
212浏览 • 1回复 待解决
HarmonyOS 如何通过SFTP上传文件
263浏览 • 1回复 待解决
HarmonyOS日志文件上传问题
1008浏览 • 1回复 待解决
HarmonyOS @ohos/httpclient上传文件问题
331浏览 • 1回复 待解决
HarmonyOS 文件管理查找pdf文件上传
412浏览 • 1回复 待解决