Back to Bricks

File Upload (Cloudinary)

Utilities

Upload images or files to Cloudinary using Multer. Returns secure URL.

uploadimagefilecloudinaryAuth Required
Backend:Frontend:
controllers/uploadController.jsjavascript
1const cloudinary = require('cloudinary').v2;
2const fs = require('fs');
3
4cloudinary.config({
5 cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
6 api_key: process.env.CLOUDINARY_API_KEY,
7 api_secret: process.env.CLOUDINARY_API_SECRET
8});
9
10exports.uploadFile = async (req, res) => {
11 try {
12 if (!req.files || Object.keys(req.files).length === 0) {
13 return res.status(400).json({ error: 'No files uploaded' });
14 }
15
16 const file = req.files.file;
17
18 // Assumes express-fileupload or similar usage, otherwise adapt for multer logic
19 // For scaffolding simplicity we assume valid file object
20 const result = await cloudinary.uploader.upload(file.tempFilePath, {
21 folder: 'legoapi_uploads'
22 });
23
24 res.json({
25 success: true,
26 url: result.secure_url,
27 public_id: result.public_id
28 });
29 } catch (error) {
30 res.status(500).json({ error: error.message });
31 }
32};

Paste Guide

Copy files to:

models/File Upload (Cloudinary).jscontrollers/uploadController.jsroutes/uploadRoutes.js

Add to server.js:

app.use('/api/upload', require('./routes/uploadRoutes'));

Stack

MulterCloudinaryExpress

Test Examples

curl -X POST http://localhost:5000/api/upload \
  -H "Authorization: Bearer TOKEN" \
  -F "file=@image.jpg"