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

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

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 formidable module:

  1. You can visit the link Install formidable module. You can install this package by using this command.
    npm install formidable
  2. After installing formidable module, you can check your yargs version in command prompt using the command.
    npm version formidable
  3. 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

Filename: index.js




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){

  

        var oldPath = files.profilePic.filepath;

        var newPath = path.join(__dirname, 'uploads')

                + '/'+files.profilePic.name

        var 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:

  1. The project structure will look like this:
    project structureNOTE: ‘uploads’ is the folder where your files will be uploaded.
  2. Make sure you have install express and formidable module using following commands:
    npm install formidable
    npm install express
  3. Run index.js file using below command:
    node index.js

    Output of above command

  4. Now open POSTMAN to run this API and send sample data as shown below:
    Postman APIHere in body, we have passed send two fields, one is name of type=’Text’ and other is profilePic of type=’File’ as shown above.
  5. Now go to your uploads folder, your file is uploaded as shown below:
    Succes

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

My Personal Notes

arrow_drop_up