Javascript 斯特拉皮:如何上传图像并将其链接到模型?
假设我有一个模型Javascript 斯特拉皮:如何上传图像并将其链接到模型?,javascript,react-native,strapi,Javascript,React Native,Strapi,假设我有一个模型餐厅,我想上传一个图像并将其链接到模型。 因此,应分两步进行: 创建新实体 上传和链接图像 目前,在我创建实体并尝试执行步骤2之后,它失败了。 注:图像来源于 以下是我正在做的: const data = new FormData(); data.append('files', image.uri); data.append('refId', id); data.append('ref', 'Restaurants');
餐厅
,我想上传一个图像并将其链接到模型。
因此,应分两步进行:
const data = new FormData();
data.append('files', image.uri);
data.append('refId', id);
data.append('ref', 'Restaurants');
data.append('field', 'Logo');
我看到的是图像没有上传。此外,从Strapi方面进行调试时,我将包含所有这些数据的请求视为字段
我正在使用文档中提到的
FormData
,我缺少什么?结果是,我需要向文件
键添加一些额外信息,以便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');
真正重要的是类型:'multipart/formdata
还有一句话,在中,有另一个键叫做
source
。我没有使用它,它似乎没有影响任何东西。请注意,如果需要,请确定。结果表明,我需要向文件
键添加一些额外信息,以便表单数据
将其识别为文件,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');
真正重要的是类型:'multipart/formdata
还有一句话,在中,有另一个键叫做
source
。我没有使用它,它似乎没有影响任何东西。如果需要,请注意“确定”。尝试执行类似操作。但即使没有将文件链接到模型,上传也会失败。奇怪的是,响应是“成功”,但没有上传到Strapi上传文件夹。我错过了什么?我的代码(这里我只是尝试从互联网上保存一个随机文件)如下:
const bodyFormData = new FormData();
const token = localStorage.getItem('token');
bodyFormData.append('files', {
uri: "https://www.w3schools.com/bootstrap/newyork.jpg",
name: "test.jpg",
type: "multipart/form-data"
});
// console.log(data.Attachment.rawFile.preview);
axios.post( 'http://localhost:1337/upload',
bodyFormData,
{
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'multipart/form-data'
}
}
).then(function(response){
console.log('SUCCESS');
})
.catch(function(){
console.log('Fail!');
});
尝试做类似的事情。但即使没有将文件链接到模型,上传也会失败。奇怪的是,响应是“成功”,但没有上传到Strapi上传文件夹。我错过了什么?我的代码(这里我只是尝试从互联网上保存一个随机文件)如下:
const bodyFormData = new FormData();
const token = localStorage.getItem('token');
bodyFormData.append('files', {
uri: "https://www.w3schools.com/bootstrap/newyork.jpg",
name: "test.jpg",
type: "multipart/form-data"
});
// console.log(data.Attachment.rawFile.preview);
axios.post( 'http://localhost:1337/upload',
bodyFormData,
{
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'multipart/form-data'
}
}
).then(function(response){
console.log('SUCCESS');
})
.catch(function(){
console.log('Fail!');
});
嘿,Hear id
data.append('refId',id)
mean restaurant id?很抱歉没有及时回复,是的,it isHi,你有curl的例子吗?通过反复试验找到了方法:curl--location--request POST'http://localhost:1337/model“\--form”data={“model\u name”:“model name”}'\--form”文件。image=@image.png'
Hey,Hear iddata.append('refId',id)
mean restaurant id?很抱歉没有及时回复,是的,it isHi,你有curl的例子吗?通过反复试验找到了方法:curl--location--request POST'http://localhost:1337/model“\--form”数据={“model\u name”:“model name”}'\--form”文件。image=@image.png'