假设我有一个模型Restaurant
,我想上传一张图片并将其链接到模型。从文档中,这应该分两步进行:
- 创建新实体
- 上传和链接图片
目前,在我创建实体并尝试执行步骤 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
,我缺少什么?
事实证明,我需要在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
.我没有使用它,它似乎不会影响任何事情。注意确定是否需要。