开发者问题收集

Strapi:如何上传图像并将其链接到模型?

2019-01-18
5935

假设我有一个模型 Restaurant ,我想上传一张图片并将其链接到该模型。 根据 文档 ,这应该分两个步骤进行:

  1. 创建新实体
  2. 上传并链接图片

目前,在我创建实体并尝试执行第 2 步后,它失败了。 注意:图像是从 React-Native 图像选择器 获取的。

这是我正在做的事情:

      const data = new FormData();
      data.append('files', image.uri);
      data.append('refId', id);
      data.append('ref', 'Restaurants');
      data.append('field', 'Logo');

我看到的是图像没有上传。此外,从 Strapi 端进行调试时,我看到请求中包含所有这些数据作为 fields

我正在使用文档中提到的 FormData ,我遗漏了什么?

1个回答

事实证明,我需要向 files 键添加一些额外信息,以便 FormData 将其识别为文件,并且 Strapi 可以处理文件上传。 以下是有效的方法:

      const data = new FormData();
      data.append('files', {
        uri: logo.uri,
        name: `test.jpg`,
        type: 'multipart/form-data'
      });
      data.append('refId', id);
      data.append('ref', 'Restaurants');
      data.append('field', 'Logo');

真正重要的是 type: 'multipart/form-data

还有一点需要说明,在 文档 中,还有另一个名为 source 的键。我没有使用它,似乎没有影响任何东西。请注意确定是否需要它。

Mohamed Moanis
2019-01-18