Upload image to strapi

后端 未结 2 1770
庸人自扰
庸人自扰 2021-01-13 22:47

I would like to upload an image to strapi with a html file. When I run the code, I obtain the error: POST http://localhost:1337/upload 500 (Internal Server Error).



        
相关标签:
2条回答
  • 2021-01-13 23:08

    As I can see forgetting to add multipart/form-data

    mimeType: "multipart/form-data"
    

    You can see documentation here

    1. Ensure that have send the request using multipart/form-data encoding

    2. The parameters allowed are:

      files: The file(s) to upload. The value(s) can be a Buffer or Stream.
      
      path: (optional): The folder where the file(s) will be uploaded to (only supported on strapi-upload-aws-s3 now).
      
      refId: (optional): The ID of the entry which the file(s) will be linked to.
      
      ref: (optional): The name of the model which the file(s) will be linked to.
      
      source: (optional): The name of the plugin where the model is located.
      
      field: (optional): The field of the entry which the file(s) will be precisely linked to.
      

    Single file request

    curl -X POST -F 'files=@/path/to/pictures/file.jpg' http://localhost:1337/upload
    

    Linking files to an entry

    For example that you have link image field in User model named avatar

    {
     "files": "...", // Buffer or stream of file(s)
     
     "path": "user/avatar", // Uploading folder of file(s).
     
     "refId": "5a993616b8e66660e8baf45c", // User's Id.
     
     "ref": "user", // Model name.
     
     "source": "users-permissions", // Plugin name.
     
     "field": "avatar" // Field name in the User model.
    }
    
    0 讨论(0)
  • 2021-01-13 23:10

    As of today, you can upload a file to strapi using axios with the following code. This is the handler of the input event on a file input.

    onInput (files) {
      const axios = require('axios')
    
      const STRAPI_BASE_URL = 'http://localhost:1337'
    
      const formData = new FormData()
      formData.append('files', files)
      formData.append('ref', 'restaurant') // optional, you need it if you want to link the image to an entry
      formData.append('refId', 12345) // optional, you need it if you want to link the image to an entry
      formData.append('field', 'image') // optional, you need it if you want to link the image to an entry
    
      axios.post(`${STRAPI_BASE_URL}/upload`, formData)
    }
    
    

    I assume that you have a collection called restaurant with a field image of type file.

    More on this here: https://strapi.io/documentation/v3.x/plugins/upload.html#upload-files

    0 讨论(0)
提交回复
热议问题