Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Express.js and File Uploads

Handling file uploads in web applications is a common requirement. This guide covers key concepts, examples, and best practices for implementing file uploads in Express.js applications.

Key Concepts of File Uploads

  • Multipart Form Data: A way to send files and form data in a single request.
  • Middleware: Middleware like multer is used to handle file uploads in Express.js.
  • Storage: Define where and how files should be stored, whether on disk or in memory.

Setting Up File Uploads

Implement file uploads in an Express.js application using the multer middleware:

Example: Basic Setup

// Install necessary packages
// npm install express multer

// server.js
const express = require('express');
const multer = require('multer');
const path = require('path');
const app = express();
const port = 3000;

// Set up multer for file uploads
const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'uploads/');
    },
    filename: (req, file, cb) => {
        cb(null, `${Date.now()}-${file.originalname}`);
    }
});
const upload = multer({ storage });

app.use(express.static('public'));

// File upload endpoint
app.post('/upload', upload.single('file'), (req, res) => {
    res.send({ message: 'File uploaded successfully', file: req.file });
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}/`);
});

// Ensure the 'uploads' directory exists
const fs = require('fs');
const dir = './uploads';
if (!fs.existsSync(dir)){
    fs.mkdirSync(dir);
}

// public/index.html



    File Upload Example


    

File Upload Example