Strapi:如何上传图片并将其 link 上传到模型?
Strapi: How to upload image and link it to Model?
假设我有一个模型 Restaurant
,我想上传一张图片 link 到模型。
从 documentation 这应该分两步进行:
- 创建新实体
- 上传并link图片
目前,在我创建实体并尝试执行第 2 步后,它失败了。
注:图片取自React-Native image picker
这是我正在做的事情:
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
。
再说一下,在documentation中,还有一个键叫source
。我没有使用它,它似乎不影响任何东西。请注意是否需要。
假设我有一个模型 Restaurant
,我想上传一张图片 link 到模型。
从 documentation 这应该分两步进行:
- 创建新实体
- 上传并link图片
目前,在我创建实体并尝试执行第 2 步后,它失败了。 注:图片取自React-Native image picker
这是我正在做的事情:
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
。
再说一下,在documentation中,还有一个键叫source
。我没有使用它,它似乎不影响任何东西。请注意是否需要。