繁体   English   中英

用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": {}
    }

那么,我该如何将简历与工作模型联系起来?

将模型链接到文件

您必须使用两个步骤来创建过程:

  1. 创建File -> POST /upload
  2. 创建JobsidFileResponse - > 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添加了新的领域,如refIdJobsJobs -> id ), ref在你的情况下jobs ,并field=resume

https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples

当您要上传文件并将其链接到条目时。 如果尚未完成,则必须首先创建该条目。 然后通过发送条目的图像信息来上传文件。

所有文档都在这里https://strapi.io/documentation/3.0.0-beta.x/guides/upload.html#examples

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM