使用 Strapi 将上传的文件与相关模型连接起来
Connect uploaded file with related model with Strapi
我正在使用 Strapi、Sqlite3 和 React。
我想发送附有文件的表格。
我有一个 Job 模型,它看起来像这样:
{
"connection": "default",
"collectionName": "jobs",
"info": {
"name": "job",
"description": ""
},
"options": {
"increments": true,
"timestamps": true,
"comment": ""
},
"attributes": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string"
},
"resume": {
"model": "file",
"via": "related",
"plugin": "upload"
},
"jobcategory": {
"model": "jobcategory",
"via": "jobs"
}
}
}
我正在使用 submitCareer
方法发送文本输入,并且 uploadFile
用于上传:
export async function submitCareer(url, formValues) {
try {
const entries = await rootUrl.createEntry(url, formValues);
return entries;
} catch (err) {
console.log(err);
}
}
export async function uploadFile(formValues) {
try {
const upload = await rootUrl.upload(formValues);
return upload;
} catch (err) {
console.log(err);
}
}
这是我的职业组件中的用法:
const handleSubmit = (event) => {
const formData = new FormData();
formData.append("files", fileInput.current.files[0]);
submitCareer('jobs', values);
uploadFile(formData);
setValues({
firstName: '',
lastName: '',
email: '',
resume: null
})
event.preventDefault();
}
我收到这样的回复:
{
"id": 66,
"firstName": "John",
"lastName": "Doe",
"email": "john@gmail.com",
"jobcategory": null,
"lname": null,
"created_at": 1561988031279,
"updated_at": 1561988031279,
"resume": {}
}
那么,如何将简历与工作模型联系起来?
当您想上传文件并将其link 到条目时。
如果尚未完成,则必须先创建条目。
然后通过发送参赛作品的图片信息上传您的文件。
所有文档都在这里https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples
将模型链接到文件
您必须通过以下两个步骤创建流程:
- 创建
File
-> POST /upload
。
- 从
FileResponse
-> POST /jobs
. 使用 id
创建 Jobs
示例:
const handleSubmit = (event) => {
const formData = new FormData();
formData.append("files", fileInput.current.files[0]);
resumeUploadFile = await uploadFile(formData);
const jobsInput = {...jobs, ...{resume: resumeUploadFile.id}}
await submitCareer('jobs', jobsInput);
setValues({
firstName: '',
lastName: '',
email: '',
resume: null
})
event.preventDefault();
}
https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#file-upload
将文件链接到条目
您可以 link 将文件也写入已创建的条目,然后您先创建 Jobs
然后 link 上传 ResumeFile
添加了新字段,例如 refId
来自 Jobs
(Jobs -> id
),在你的情况下 ref
jobs
和 field=resume
https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples
我正在使用 Strapi、Sqlite3 和 React。 我想发送附有文件的表格。
我有一个 Job 模型,它看起来像这样:
{
"connection": "default",
"collectionName": "jobs",
"info": {
"name": "job",
"description": ""
},
"options": {
"increments": true,
"timestamps": true,
"comment": ""
},
"attributes": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string"
},
"resume": {
"model": "file",
"via": "related",
"plugin": "upload"
},
"jobcategory": {
"model": "jobcategory",
"via": "jobs"
}
}
}
我正在使用 submitCareer
方法发送文本输入,并且 uploadFile
用于上传:
export async function submitCareer(url, formValues) {
try {
const entries = await rootUrl.createEntry(url, formValues);
return entries;
} catch (err) {
console.log(err);
}
}
export async function uploadFile(formValues) {
try {
const upload = await rootUrl.upload(formValues);
return upload;
} catch (err) {
console.log(err);
}
}
这是我的职业组件中的用法:
const handleSubmit = (event) => {
const formData = new FormData();
formData.append("files", fileInput.current.files[0]);
submitCareer('jobs', values);
uploadFile(formData);
setValues({
firstName: '',
lastName: '',
email: '',
resume: null
})
event.preventDefault();
}
我收到这样的回复:
{
"id": 66,
"firstName": "John",
"lastName": "Doe",
"email": "john@gmail.com",
"jobcategory": null,
"lname": null,
"created_at": 1561988031279,
"updated_at": 1561988031279,
"resume": {}
}
那么,如何将简历与工作模型联系起来?
当您想上传文件并将其link 到条目时。 如果尚未完成,则必须先创建条目。 然后通过发送参赛作品的图片信息上传您的文件。
所有文档都在这里https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples
将模型链接到文件
您必须通过以下两个步骤创建流程:
- 创建
File
->POST /upload
。 - 从
FileResponse
->POST /jobs
. 使用
id
创建 Jobs
示例:
const handleSubmit = (event) => {
const formData = new FormData();
formData.append("files", fileInput.current.files[0]);
resumeUploadFile = await uploadFile(formData);
const jobsInput = {...jobs, ...{resume: resumeUploadFile.id}}
await submitCareer('jobs', jobsInput);
setValues({
firstName: '',
lastName: '',
email: '',
resume: null
})
event.preventDefault();
}
https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#file-upload
将文件链接到条目
您可以 link 将文件也写入已创建的条目,然后您先创建 Jobs
然后 link 上传 ResumeFile
添加了新字段,例如 refId
来自 Jobs
(Jobs -> id
),在你的情况下 ref
jobs
和 field=resume
https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples