DEV Community

Cover image for Upload multiple images to Cloudinary using React
Agbo, Daniel Onuoha
Agbo, Daniel Onuoha

Posted on • Edited on

Upload multiple images to Cloudinary using React

To upload multiple images to Cloudinary using React, you can follow these steps:

  1. Install the cloudinary-react package to simplify interactions with Cloudinary in your React application:
npm install cloudinary-react
Enter fullscreen mode Exit fullscreen mode
  1. Import the necessary components and functions from cloudinary-react:
import { Image, Video, Transformation, CloudinaryContext } from 'cloudinary-react';
import { fetchPhotos } from './Utils';
Enter fullscreen mode Exit fullscreen mode
  1. Set up your Cloudinary configuration. You'll need your Cloudinary cloud name, API key, and API secret:
import cloudinary from 'cloudinary-core';

const cloudinaryCore = new cloudinary.Cloudinary({ cloud_name: 'YOUR_CLOUD_NAME' });
Enter fullscreen mode Exit fullscreen mode
  1. Create a component to handle the image upload functionality. This component will include a form with an input field for selecting multiple files and a submit button:
import React, { useState } from 'react';
import axios from 'axios';

const ImageUploader = () => {
  const [selectedFiles, setSelectedFiles] = useState([]);

  const handleFileChange = (e) => {
    setSelectedFiles([...selectedFiles, ...Array.from(e.target.files)]);
  };

  const handleUpload = async () => {
    const formData = new FormData();
    selectedFiles.forEach((file) => {
      formData.append('file', file);
    });

    try {
      const response = await axios.post(
        `https://api.cloudinary.com/v1_1/${cloudName}/upload`,
        formData,
        {
          headers: {
            'Content-Type': 'multipart/form-data',
          },
        }
      );
      console.log(response.data);
      // Handle success
    } catch (error) {
      console.error('Error uploading images:', error);
      // Handle error
    }
  };

  return (
    <div>
      <input type="file" multiple onChange={handleFileChange} />
      <button onClick={handleUpload}>Upload</button>
    </div>
  );
};

export default ImageUploader;
Enter fullscreen mode Exit fullscreen mode
  1. Include the ImageUploader component in your application where you want the image upload functionality to be available:
import React from 'react';
import ImageUploader from './ImageUploader';

const App = () => {
  return (
    <div>
      <h1>Image Uploader</h1>
      <ImageUploader />
    </div>
  );
};

export default App;
Enter fullscreen mode Exit fullscreen mode

With these steps, you should now have a React component that allows users to select and upload multiple images to Cloudinary. Make sure to replace 'YOUR_CLOUD_NAME' with your actual Cloudinary cloud name.

Top comments (0)