Open In App

How to Upload File using formidable module in Node.js ?

Improve
Improve
Like Article
Like
Save
Share
Report

A formidable module is used for parsing form data, especially file uploads. It is easy to use and integrate into your project for handling incoming form data and file uploads.

Installation of the formidable module:

You can visit the link Install formidable module. You can install this package by using this command.

npm install formidable

After installing the formidable module, you can check your yards version in the command prompt using the command.

npm version formidable

After that, you can just create a folder and add a file for example index.js, To run this file you need to run the following command.

node index.js

Project Structure:

project structure

NOTE: ‘uploads’ is the folder where your files will be uploaded.

Filename: 

  • index.js: The below code should be in the index.js

javascript




const express = require('express');
const fs = require('fs');
const path = require('path')
const formidable = require('formidable');
 
const app = express();
 
app.post('/api/upload', (req, res, next) => {
 
    const form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
 
        let oldPath = files.profilePic.filepath;
        let newPath = path.join(__dirname, 'uploads')
            + '/' + files.profilePic.name
        let rawData = fs.readFileSync(oldPath)
 
        fs.writeFile(newPath, rawData, function (err) {
            if (err) console.log(err)
            return res.send("Successfully uploaded")
        })
    })
});
 
app.listen(3000, function (err) {
    if (err) console.log(err)
    console.log('Server listening on Port 3000');
});


Steps to run the program:

Make sure you have installed the express and formidable module using the following commands:

npm install formidable
npm install express

Run the index.js file using the below command:

node index.js

Output of above command

Now open POSTMAN to run this API and send sample data as shown below: 

Postman API

Here in the body, we have passed send two fields, one is the name of type=’Text’ and the other is the profile pic of type=’File’ as shown above.

Now go to your uploads folder, your file is uploaded as shown below:

 Succes

So this is how you can use a formidable module for uploading files and handling incoming form data easily and efficiently.


Last Updated : 31 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments