For the complete documentation index, see llms.txt. This page is also available as Markdown.

File Uploads

You can upload files via the React form using input type of file. The file component supports multiple file uploads using a drag-and-drop interface.

User avatars demonstrate a full working example of uploading files from the client and storing them in an S3 bucket.

<Form inputs={{ 
  avatar: {
    label: 'Profile Picture',
    type: 'file', 
    required: false, 
    max: 1,
 },
}}/>

Uploads are handled on the server using multer and stored in the /uploads directory.

There is a utility API endpoint for uploading files.

/api/utility/upload

When using this endpoint, a temp file will be stored in the /uploads folder by multer. The controller will then upload this file to S3 to your default bucket.

Alternatively, if you want to upload a file to another endpoint, you'll need to use the multer middleware in the same manner as the utility endpoint.

const multer = require('multer');
const upload = multer({ dest: 'uploads' });
api.post('/api/utility/upload', upload.any(), use(utilityController.upload));

Uploading Files to Amazon S3

Gravity includes a helper for interacting with S3, so you can manage your S3 buckets and files in a few lines of code.

1. Add AWS Credentials to .env

You need to add the following three credentials to your environment to use the S3 helper:

2. Import The Helper

Import the helper anywhere in your project and call one of the helper methods.

Last updated