我正在使用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": {}
}
那么,我该如何将简历与工作模型联系起来?
答案 0 :(得分:1)
您必须使用两个步骤来创建过程:
File
-> POST /upload
。Jobs
-> id
中使用FileResponse
创建POST /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
您也可以将文件链接到创建的条目,然后先创建Jobs
,然后将链接ResumeFile
与refId
中添加的新字段(例如Jobs
链接起来)( Jobs -> id
),ref
(在您的情况下为jobs
和field=resume
https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples
答案 1 :(得分:0)
要上传文件并将其链接到条目时。 如果尚未完成,则必须首先创建该条目。 然后通过发送条目的图像信息来上传文件。
所有文档都在这里https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples