getFileStream 获取不到自定义字段

Posted wujh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getFileStream 获取不到自定义字段相关的知识,希望对你有一定的参考价值。

Eggjs 使用ctx.getFileStream进行文件上传

最近在使用eggjs上传文件时,无法获取到前端定义的字段,一直为空,在此记录一下

前端代码

handleRequest(param) {
      let fileObj = param.file;
      // FormData 对象
      let form = new FormData();
      // 文件对象
      form.append(\'bizId\', this.apartment.id);
      form.append(\'bizType\', \'1\');
      form.append(\'file\', fileObj);  // 注意这个地方移动要放append到最后面
  
      fileApi.uploadSave(form).then((res) => {
       //...
      })
    },

后端

// 使用了案例云的OSS 
async ossStreamSave() {
    const { ctx } = this;
    try {
      // ★★★★★ 提示,前端 formData.append(‘filename’, file) 必须放到最后,否则ctx.getFileStream()取流完成时stream.fields仍然是空的
      let stream;
      stream = await ctx.getFileStream();
      const params = {
        bizId: stream.fields.bizId,
        bizType: stream.fields.bizType,
        url: \'\',
        submittedFileName: stream.filename,
        contextType: stream.mimeType,
        ext: stream.filename.split(\'.\')[1],
      };
      
      const uid = UUID.v4();
      const name = \'tks/\' + path.basename(`${uid}.${params.ext}`);
      const result = await client.put(name, stream);
        
      params.url = result.url;
      const res = await ctx.model.TksFile.create(params);
      return res;

    } catch (err) {
      return false;
    }
  }

参考:https://blog.csdn.net/qq_3615...

​ https://github.com/eggjs/egg/...

以上是关于getFileStream 获取不到自定义字段的主要内容,如果未能解决你的问题,请参考以下文章

使用 jira 中的 REST api 修改自定义字段名称后,CustomFieldManager 未获取自定义字段

在自定义分类模板中获取自定义字段

为啥我无法通过 Ajax 获取 WP 自定义字段值或发布 ID?

Wordpress:以正确的语言获取自定义字段值 (WPML)

获取不到自定义的request的header属性

Wordpress 如何使用 python 和 REST API 获取高级自定义字段内容