How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (2024)

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (1)

This React js tutorial will carry you towards the important concept of how to upload a single file and multiple files in the React js application and also how to preview it. Here are the topics we are going to cover apart from how to upload file in react js:

  • React js file upload
  • React js file upload example
  • React js file upload example with axios
  • React js file upload validation
  • React js file upload with preview
  • Upload multiple files in react js
  • Multiple file uploads in react js with preview
  • Drag and drop multiple file uploads in react js

Table of Contents

React js file upload

Here we will see how to upload a file in react js or handle react js file in the application.

Uploading different types of files is a critical component that any developer must consider while developing an application. It is a necessary requirement for developing a comprehensive application. When a user uploads files to a server from a client machine, this is referred to as file uploading.

The procedure of uploading a file is broken into two phases:

  1. Choose a File (user Input): The first step is to add the tag to our App component to allow the user to select a file. This tag’s type attribute should be set to “file.” We now require an event handler to monitor any changes made to the file. When the user picks a new file, this event handler is called and the state is updated.
  2. Send the following request to the server: After storing the chosen file (in the state), we must now send it to a server. We can use fetch or Axios for this purpose. (We utilize Axios, a promise-based HTTP client for the browser, and NodeJS in this code.) The file is wrapped in a FormData object and sent to the service.

Read Form validation in react js

React js file upload example

Here we see an example of how to create a File upload component.

Example 1: React js simple file upload

For example, we will create a simple form in react js that will have a field to upload a file.

Let’s say the index.html contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import './App.css';import FileUploadPage from './FileUpload';function App() { return ( <div className="App"> <FileUpload></FileUpload> </div> );}export default App;

In the FileUpload component, write the code below to create a simple form with one input field.

import React from 'react';function FileUpload() { const handleUpload =() => {alert("File uploaded") }; return ( <div className="App"> <form onSubmit={handleUpload}> <h1>Upload a file</h1> <input type="file" /> <button type="submit">Upload</button> </form> </div> ); }export default FileUpload;

Now run the application with the npm start command, and you can see the form render on the page, having a field that will accept the file. As there is no file chosen so it is showing ‘No file chosen’.

To upload a file click on ‘Choose file’, then select the file from the local desktop. Once you choose a file click on the upload icon, and you will get a successful message ‘ File uploaded’

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (2)

Example 2: Form with file upload in react js with state

Here we will use the above form with file upload to keep track of what file is uploading.

For example, to keep track of the file our user chooses to upload, we’ll build a state variable, an onChange event handler for the input element, and a handle change method.

In the above File upload component, write the below code:

import React, {useState} from 'react';function FileUpload() {const [selectedFile, setSelectedFile] = useState(); const[isSelected, setIsSelected]= useState(false)// const [isFilePicked, setIsFilePicked] = useState(false);const handleChange = (event) => {setSelectedFile(event.target.files[0]);setIsSelected(true);};const handleSubmit = () => { if(isSelected=== true){ alert("File uploded"); } else{ alert("upload a file"); }};return( <form> <h2>Upload a file</h2><input type="file" name="file" onChange={handleChange} />{isSelected ? (<div> <h2>File Details</h2><p>Filename: {selectedFile.name}</p><p>Filetype: {selectedFile.type}</p><p>Size in bytes: {selectedFile.size}</p><p>lastModifiedDate:{' '}{selectedFile.lastModifiedDate.toLocaleDateString()}</p></div>) : (<p>Select a file to show details</p>)}<div><button onClick={handleSubmit}>Submit</button></div></form>)}export default FileUpload;

Now run the application with the npm start command and you can see the form render on the page having a file input field. As there is no file chosen so it is showing ‘No file chosen. To upload a file click on ‘Choose file’, then choose the file from the local desktop.

Once the file is uploaded you can see the file details. You click on the Submit, and you can see the message is pop on the screen ‘File uploaded.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (3)

Read Components in React js

React js file upload example with Axios

Here we will see how to upload files in React js with Axios.

What are the Axios in React?

  • Axios is used to communicate with the backend, and it also supports the native JS ES6 Promise API.
  • It is a library that is used to create API requests, get data from the API, and then perform actions with that data in our React application.
  • Axios is a popular HTTP client (with 78k stars on Github) that allows us to make HTTP queries directly from the browser.

Why do we want Axios in react?

Axios, a well-known library, is mostly used to send asynchronous HTTP queries to REST endpoints. This library is really useful for performing CRUD activities.

Let’s say the index.html contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import './App.css';import FileUploadPage from './FileUpload';function App() { return ( <div className="App"> <FileUpload></FileUpload> </div> );}export default App;

The FileUpload component contains the below code:

import React, {Component} from 'react';import axios from 'axios';class FileUpload extends Component { state = { // Initially, no file is selected onSelectedFile: null }; // On file select (from the pop up) onFileChange = event => { // Update the state this.setState({ onSelectedFile: event.target.files[0] }); }; // On file upload (click the upload button) onFileUpload = () => { // Create an object of formData const formData = new FormData(); // Update the formData object formData.append( "myFile", this.state.onSelectedFile, this.state.onSelectedFile.name ); // Details of the uploaded file console.log(this.state.onSelectedFile); // Request made to the backend api // Send formData object axios.post("api/uploadfile", formData); }; // File content to be displayed after // file upload is complete fileData = () => { if (this.state.onSelectedFile) { return ( <div> <h2>File Information:</h2> <p>File Name: {this.state.onSelectedFile.name}</p> <p>File Type: {this.state.onSelectedFile.type}</p> <p> Last Modified:{" "} {this.state.onSelectedFile.lastModifiedDate.toDateString()} </p> </div> ); } else { return ( <div> <br /> <h4>Choose file before Pressing the Upload button</h4> </div> ); } }; render() { return ( <div> <h3> File Upload with Axios </h3> <div> <input type="file" onChange={this.onFileChange} /> <button onClick={this.onFileUpload}> Upload! </button> </div> {this.fileData()} </div> ); } } export default FileUpload;

Now run the application with the npm start command and you can see the form render on the page with the file input field. Click on the choose file, then you can see the details.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (4)

This is an example of React js file upload example with Axios.

Read What is JSX in React js

React js file upload validation

Here we will see how to validate the image file in React js.

So here we will use the antd library for form and date picker in our react application. For this we need to install it by using the below command

npm install antd

For example, we will create an application that will only accept the png file, and if you will upload any other format, you will get an error message on the window.

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import React, { useState } from 'react';import './App.css';//Bootstrap and jQuery librariesimport 'bootstrap/dist/css/bootstrap.min.css';//Image upload modulesimport { Upload, Button, message } from 'antd';import { UploadOutlined } from '@ant-design/icons';import "antd/dist/antd.css";class App extends React.Component { render(){ const Uploader = () => { const [fileList, updateFileList] = useState([]); const props = { fileList, beforeUpload: file => { //File Type Check if (file.type !== 'image/png') { message.error(`${file.name} is not a png file`); } return file.type === 'image/png'; }, onChange: info => { console.log(info.fileList); // file.status is empty when beforeUpload return false updateFileList(info.fileList.filter(file => !!file.status)); }, }; return ( <Upload {...props}> <Button icon={<UploadOutlined />}>Upload png only</Button> </Upload> ); }; return ( <> <div className="MainDiv"> <div className="jumbotron text-center"> <h3>spguides.com</h3> <br></br> </div> <div className="container"> <Uploader /> </div> </div> </> );}}export default App;

Now run the application with the npm start command and you can upload a png file it will accept.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (5)

This is an example of how to validate image file in react js.

Read Props in React js

React js file upload with preview

Here we will see how to upload a file and preview it using react js.

Example 1: React js image file upload with preview

For example, We’ll see how to easily add an image file from our local device to our React project. We may accomplish this by creating a static method URL. createObjectURL().

Let’s say the index.html contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import './App.css';import FileUploadPage from './FileUpload';function App() { return ( <div className="App"> <FileUpload></FileUpload> </div> );}export default App;

The FileUpload component contains the below code:

import React, { useState } from "react"; function FileUpload() { const [selectFile, setSelectFile] = useState(); function handleChange(e) { console.log(e.target.files); setSelectFile(URL.createObjectURL(e.target.files[0])); } return ( <div className="App"> <h2>Choose an Image:</h2> <input type="file" onChange={handleChange} /> <img src={selectFile} alt="" /> </div> );} export default FileUpload;

Now run the application with the npm start command and you can see the input field will render on the page. Next, choose one image file, you want to preview.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (6)

This is an example of how to preview the uploaded file.

Example 2: React js excel file upload with preview

Here we will see how to upload and preview excel files in React js.

I needed a quick, easy way to render and display Excel spreadsheets on a webpage, but I was not able to find a pre-developed JavaScript library. The only option was to upload the file to Google Drive or Microsoft OneDrive, then embed the link.

If only there was a more elegant and user-friendly solution to this problem. It’s called react excel render library.

What is the react-excel-render library?

React-Excel-Renderer is a React-based component for rendering and displaying Excel spreadsheets on a webpage.

To use the React-excel-renderer library, we need to install it in our application by using the below command:

npm install react-excel-renderer --save

We will use the two modules from react-excel-renderer, these are:

  • Excelrender: To transform sheet data into JSON format, import the primary module ExcelRenderer.
  • OutTable: we will import OutTable as well to show the acquired JSON in an HTML table.

Let’s say the index.html contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import './App.css';import FileUploadPage from './FileUpload';function App() { return ( <div className="App"> <FileUpload></FileUpload> </div> );}export default App;

The FileUpload component contains the below code:

import {OutTable, ExcelRenderer} from 'react-excel-renderer';import React,{Component} from 'react'; class FileUpload extends Component {state={rows:"",cols:""} handleFile = (event) => {let filesObj = event.target.files[0];//just pass the filesObj as parameterExcelRenderer(filesObj, (err, resp) => { if(err){console.log(err); } else{this.setState({ cols: resp.cols, rows: resp.rows}); }}); } render() { return ( <div><h2> Upload a excel file</h2> <input type="file" onChange={this.handleFile.bind(this)} /> <div>{this.state.rows && <OutTable data= {this.state.rows} columns={this.state.cols} tableClassName="ExcelTable2007" tableRowHeaderClass="heading"></OutTable>} </div> </div> ) } } export default FileUpload;

Now run the application with the npm start command and you can see the field to upload a file. Click on the choose file option and then choose excel file. You can preview the excel file.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (7)

This is an example of how to preview uploaded excel file.

Example 3: React js pdf file upload with preview

Here we will see how to upload the pdf file and preview it using react js.

To preview pdf in react js, we need to use React PDF Viewer library.

What is React Pdf viewer?

The React PDF Viewer is a lightweight and flexible component that allows you to view and print PDF files. With key activities like zooming, scrolling, text searching, text selection, and text copying, it gives the greatest viewing experience available. The thumbnail, bookmark, hyperlink, and table of contents capability facilitate navigating both within and outside of PDF files.

To use in our application we need to install react pdf viewer core, by using the below command:

npm install @react-pdf-viewer/core

Also, we will use the defaultLayout plugin, which will add a toolbar and a sidebar with the following tabs

  • A tab that displays thumbnails of pages
  • Outline bookmarks are listed in a tab.
  • A tab for attachments

To use this plugin we need to install it in our application, by using the below command:

npm install '@react-pdf-viewer/default-layout';

Now, we will see how to apply the logic to preview the pdf in react js application.

Let’s say the index.html contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import './App.css';import FileUploadPage from './FileUpload';function App() { return ( <div className="App"> <FileUpload></FileUpload> </div> );}export default App;

The FileUpload component contains the below code:

import React,{useState} from 'react'// Import the main componentimport { Viewer } from '@react-pdf-viewer/core'; // Pluginsimport { defaultLayoutPlugin } from '@react-pdf-viewer/default-layout'; // Import the stylesimport '@react-pdf-viewer/core/lib/styles/index.css';import '@react-pdf-viewer/default-layout/lib/styles/index.css';// Workerimport { Worker } from '@react-pdf-viewer/core'; export const FileUpload = () => { // Create new plugin instance const defaultLayoutPluginInstance = defaultLayoutPlugin(); // for onchange event const [selectPdfFile, setSelectPdfFile]=useState(null); const [pdfFileError, setPdfFileError]=useState(''); // for submit event const [viewPdf, setViewPdf]=useState(null); // onchange event const fileObj=['application/pdf']; const handleFileChange=(e)=>{ let selectedFile=e.target.files[0]; if(selectedFile){ if(selectedFile&&fileObj.includes(selectedFile.type)){ let reader = new FileReader(); reader.readAsDataURL(selectedFile); reader.onloadend = (e) =>{ setSelectPdfFile(e.target.result); setPdfFileError(''); } } else{ setSelectPdfFile(null); setPdfFileError('Please select valid pdf file'); } } else{ alert('select pdf file'); } } // form submit const handleSubmit=(e)=>{ e.preventDefault(); if(selectPdfFile!==null){ setViewPdf(selectPdfFile); } else{ setViewPdf(null); } } return ( <div className='container'> <h1> Upload a pdf file</h1> <br></br> <form className='form-group' onSubmit={handleSubmit}> <input type="file" className='form-control' required onChange={handleFileChange} /> {pdfFileError&&<div className='error-msg'>{pdfFileError}</div>} <br></br> <button type="submit" className='btn btn-success btn-lg'> UPLOAD </button> </form> <br></br> <h4>View PDF</h4> <div className='pdf-container'> {/* show pdf conditionally (if we have one) */} {viewPdf&&<><Worker workerUrl="https://unpkg.com/[email protected]/build/pdf.worker.min.js"> <Viewer fileUrl={viewPdf} plugins={[defaultLayoutPluginInstance]} /> </Worker></>} {/* if we dont have pdf or viewPdf state is null */} {!viewPdf&&<>No pdf file choosen </>} </div> </div> )}export default FileUpload

Now run the application with the npm start command and you can see the file field render on the page. Next click on the choose file option, then select a pdf file and click on upload. Now you can preview the content on the page.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (8)

This is an example of how to preview an uploaded pdf file.

Read State in React js

React js multiple file upload

Here we will see how to apply multiple file uploads in React js.

In this example, we will see how to upload multiple files to the React application

So the index.html file contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import './App.css';import FileUploadPage from './FileUpload';function App() { return ( <div className="App"> <FileUpload></FileUpload> </div> );}export default App;

The FileUpload component contains the below code:

import { useState } from 'react';const MaxFile = 5;function FileUpload() { const [uploadedFiles, setUploadedFiles] = useState([]) const [fileLimit, setFileLimit] = useState(false); const handleUploadFiles = files => { const uploaded = [...uploadedFiles]; let limitExceeded = false; // check if the file is already exists files.some((file) => { if (uploaded.findIndex((f) => f.name === file.name) === -1) { uploaded.push(file); if (uploaded.length === MaxFile) setFileLimit(true); //limit the number of file to be uploaded if (uploaded.length > MaxFile) { alert(`You can only add a maximum of $ MaxFile} files`); setFileLimit(false); limitExceeded = true; return true; } } }) if (!limitExceeded) setUploadedFiles(uploaded) } const fileEventHandler = (e) => { const chosenFiles = Array.prototype.slice.call(e.target.files) handleUploadFiles(chosenFiles); } return ( <div className="App">{/* display the uploaded files */}<h2>Upload a file</h2> <input id='fileUpload' type='file' multiple accept='application/pdf, image/png' onChange={fileEventHandler} disabled={fileLimit} /> <label htmlFor='fileUpload'> <a className={`btn btn-primary ${!fileLimit ? '' : 'disabled' } `}>Upload</a> </label> <div className="uploaded-files-list"> {uploadedFiles.map(file => ( <div > {file.name} </div> ))} </div> </div> );}export default FileUpload;

Now run the application with the npm start command, and you can see the input field that will access the multiple files. So, click on chosen Files, and choose multiple file .

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (9)

This is how we can upload multiple files in react js.

Read State in React js Hooks

Multiple image file uploads in react js with preview

Here we will show to preview multiple image files, by uploading them.

In this example, we will see how to preview numerous images before uploading in react js by following a few basic steps.

As you are aware, if you upload one or more photographs by selecting them from your computer’s locale directory, you will only see the total amount of files beneath the file input Field.

If you pick 5 photographs from your local computer, you will see “5 files” to the right of the browse Input field.

Following that, with the total amount of files, it will be easier to reconfirm the selected photographs before uploading. However, if you provide numerous image previews, you can quickly determine which photographs are chosen to upload to the server.

Before we will start this example we need to install bootstrap, for styling, so here we will use bootstrap 4. To install it in the project, run the below command:

npm install bootstrap

So the index.html file contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import React from 'react';import '../node_modules/bootstrap/dist/css/bootstrap.min.css'; import FileUpload from './FileUpload';function App() { return ( <div className='App'> <h2> Multiple Image Upload With Preview</h2> <FileUpload></FileUpload> </div> );} export default App;

The FileUpload component contains the below code:

import { useState } from "react";import ImagePrew from "./ImagePrew";function FileUpload(){ const [img, setImg] = useState([]); const handleMultipleImg =(event)=>{ const selectedFIles =[]; const targetFiles =event.target.files; const targetFilesObj= [...targetFiles] targetFilesObj.map((file)=>{ return selectedFIles.push(URL.createObjectURL(file)) }) setImg(selectedFIles); } return( <> <div className="form-group my-3 mx-3"> <input type="file" onChange={handleMultipleImg} multiple/> </div> <ImagePrew img={img} /> </>)}export default FileUpload

The Imageprew file contains the below code:

import React from "react";function ImagePrew({img}){ return( <div className="row"> { img.map((url)=>{ return ( <div className="col-sm-1"> <div className="card"> <img src={url} alt=""/> </div> </div> ) }) } </div> )}export default ImagePrew;

Now run the application with the npm start command and you can see the choose file field, which will accept multiple image files, once you choose the file, you can preview it.

So, click on Choose File option and choose multiple images then you can see the number of files and you can preview it.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (10)

This is how we can preview multiple uploaded image file in react js.

Read Handling Events in React js

Drag and drop multiple file uploads in react js

Here we will see how to drag and drop multiple file uploads in react js.

Applications that use drag-and-drop functionality on browsers are known as drag-and-drop platforms. The user clicks and drags files to a droppable element (drop zone) using a mouse or touchpad, then releases the mouse button to release the files.

For example, we will create a component that listens for drag events, manages drops, and reverts to the standard file picker.

For this we will use React Dropzone library, which is used to create intricate drag-and-drop user interfaces while maintaining the destructured nature of your components, React-dropzone is a collection of React modules. Drag-and-drop in React is most frequently used for three things: uploading files, reorganising images/files, and moving data between various folders.

To use React Dropzone library in the application, we need to install it by using the below command.

npm install react-dropzone

Now let’s how to create an application with drag-drop functionality.

So the index.html file contains the below code:

 <div id="root"></div>

The Index.js file is the starting point of the React app, so it contains the below code:

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));root.render( <App /> );reportWebVitals();

The App.js file contains the below code:

import axios from 'axios';import DragDrop from './DragDrop';import React,{Component} from 'react'; class App extends Component { state = { // Initially, no file is selected onSelectedFile: null }; // On file select (from the pop up) handleFileChange = event => { // Update the state this.setState({ onSelectedFile: event.target.files[0] }); }; // On file upload (click the upload button) handleFileUpload = () => { // Create an object of formData const formData = new FormData(); // Update the formData object formData.append( "myFile", this.state.onSelectedFile, this.state.onSelectedFile.name ); // Details of the uploaded file console.log(this.state.onSelectedFile); // Request made to the backend api // Send formData object axios.post("api/uploadfile", formData); }; // File content to be displayed after // file upload is complete fileData = () => { if (this.state.onSelectedFile) { return ( <div> <h2>File Details:</h2> <p>Name of File: {this.state.onSelectedFile.name}</p> <p>File Type: {this.state.onSelectedFile.type}</p> <p> Last Modified:{" "} {this.state.onSelectedFile.lastModifiedDate.toDateString()} </p> </div> ); } else { return ( <div> </div> ); } }; render() { return ( <div> <h3> File Uploading! </h3> <div> <DragDrop /> </div> {this.fileData()} </div> ); } } export default App;

The DragDrop component contains the below code:

import React from "react";import { useDropzone } from "react-dropzone";function DragDrop({ open }) { const { getRootProps, getInputProps, isDragOn, acceptedFiles } = useDropzone({}); const files = acceptedFiles.map((file) => ( <li key={file.path}> {file.path} - {file.size} bytes </li> )); return ( <div {...getRootProps({ className: "dropzone" })}> <input className="input-zone" {...getInputProps()} /> <div className="text-center"> {isDragOn ? ( <p className="dropzone-content"> Release to drop the files here </p> ) : ( <p className="dropzone-content"> Drag & drop some files here, else click to select files </p> )} <button type="button" onClick={open} className="btn"> To select files, click on the button </button> </div> <aside> <ul>{files}</ul> </aside> </div> );}export default DragDrop;

To style the Drag and drop area, add the below CSS code to the index.css.

body { text-align: center; padding: 20px; border: 3px blue dashed; width: 60%; margin: auto;}

Now run the application with npm start command and you can see the area where you can drop the files or else select the file.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (11)

This is how we can drag and drop the multiple files in react js.

Conclusion

This reacts js tutorial concluded with how we can upload single or multiple files in react js using state and different types of libraries. Also, we discussed different types of examples:

  • React js file upload
  • React js file upload example
  • React js file upload example with Axios
  • React js file upload validation
  • React js file upload with preview
  • How to upload multiple files in react js
  • Multiple file uploads in react js with preview
  • Drag and drop multiple file uploads in react js

You may like the following react js tutorials:

  • Conditional rendering react js
  • React js form examples for beginners
  • How to reset form in react js

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (12)

Bijay Kumar

I am Bijay a Microsoft MVP (10 times – My MVP Profile) in SharePoint and have more than 17 years of expertise in SharePoint Online Office 365, SharePoint subscription edition, and SharePoint 2019/2016/2013. Currently working in my own venture TSInfo Technologies a SharePoint development, consulting, and training company. I also run the popular SharePoint website EnjoySharePoint.com

As an expert in React.js and file handling, I'll provide insights into the concepts covered in the provided article:

  1. React.js File Upload:

    • React.js emphasizes the importance of handling file uploads for comprehensive application development.
    • The process involves two phases: choosing a file (user input) and sending the selected file to the server.
    • The article recommends using the fetch API or Axios, a promise-based HTTP client, to send files to the server.
  2. React.js File Upload Example:

    • Demonstrates a simple file upload form in React.js.
    • Uses a basic form structure with an input field of type "file."
    • The code example utilizes the FileUpload component to handle file upload.
  3. React.js File Upload Example with Axios:

    • Introduces Axios for handling file uploads in React.js.
    • Uses the Axios library to send FormData containing the selected file to the server.
    • Provides a code example illustrating the integration of Axios in a React component (FileUpload).
  4. React.js File Upload Validation:

    • Discusses the importance of file validation in React.js applications.
    • Demonstrates file type validation using the antd library for form and date picker.
    • Example includes only accepting PNG files and displaying an error message for invalid file types.
  5. React.js File Upload with Preview:

    • Explains the concept of uploading files and previewing them in a React.js application.
    • Provides an example of uploading an image file and displaying its preview.
    • Illustrates the use of the URL.createObjectURL method for creating a preview of the selected image.
  6. React.js Multiple File Upload:

    • Introduces the concept of uploading multiple files in a React.js application.
    • Demonstrates the use of the multiple attribute in the file input to allow the selection of multiple files.
    • The example includes a file limit and displays the names of the uploaded files.
  7. React.js Drag and Drop Multiple File Upload:

    • Covers the implementation of drag-and-drop functionality for multiple file uploads in React.js.
    • Utilizes the React Dropzone library for managing drag-and-drop events.
    • Provides a code example with a DragDrop component that allows users to drag and drop files or select them conventionally.

In summary, the article comprehensively covers various aspects of file handling in React.js, including single and multiple file uploads, validation, previewing, and drag-and-drop functionality. It provides practical examples and code snippets to help developers implement these features in their React.js applications.

How to upload file in react js? [With Drag and drop multiple file uploads] - SPGuides (2024)

FAQs

How to implement multiple file upload in React? ›

import React, { useState } from 'react'; const MultipleFileUploader = () => { const [files, setFiles] = useState<FileList | null>(null); const [status, setStatus] = useState< 'initial' | 'uploading' | 'success' | 'fail' >('initial'); const handleFileChange = (e: React. ChangeEvent<HTMLInputElement>) => { if (e. target.

How do I upload multiple files to React DropZone? ›

React Dropzone can be easily configured to accept multiple file uploads. This is done by setting the multiple prop to true in the getInputProps function. This allows users to select more than one file at a time from the file dialog or to drag and drop multiple files into the dropzone.

How to upload multiple files one by one in JavaScript? ›

Uploading Multiple Files Using JavaScript
  1. Step 1: Create an HTML form with a file input element that allows Multiple file selections. ...
  2. Step 2: Add an event listener to capture file selection. ...
  3. Step 3: Use FormData to Store Files. ...
  4. Step 4: Send the AJAX request using XMLHttpRequest.
Oct 4, 2023

How do I upload large files to Reactjs? ›

Uploading large files in a React application, using AWS S3 pre-signed URLs, provides a secure and efficient way to handle file transfers. By offloading the actual file transfer to AWS S3, you reduce the load on your server, and by using pre-signed URLs, you maintain a high level of security.

How do you implement file upload in react JS? ›

Approach for File Uploading in React JS:
  1. Select a File (user input): To enable the user to pick a file, the first step is to add the tag to our App component. ...
  2. Send a request to the server: After storing the selected file (in the state), we are now required to send it to a server.
Jun 28, 2024

How do I drag and drop multiple files? ›

Select the files you want to drag-and-drop.

Then, use the keyboard shortcut CTRL + A (Windows) or CMD + A (Mac). To select multiple individual files, hold down CTRL (Windows) or CMD (Mac) and click each file.

How do I drag and drop a file to upload? ›

You can drag the files or folders from file explorer and drop into the drop area. By default, the Uploader component act as drop area element. The drop area gets highlighted when you drag the files over drop area. The Uploader component allows you to set external target element as drop area using the dropArea property.

How do I move files with drag and drop? ›

How do I Drag and Drop? By default, if you left-click and HOLD the left mouse or touchpad button while moving your mouse pointer to a different folder location on the same drive, when you release the left mouse button the file is moved to the new location where you released the mouse button.

What is the file upload limit for react dropzone? ›

React Dropzone offers two props, minSize and maxSize, which allow you to set the minimum and maximum file size in bytes. To specify a maximum file size of 5MB or less, add the minSize and maxSize props to the Dropzone component below the accept prop.

How do I import multiple images into react? ›

context method.
  1. First, create a directory to store all your images. For example, let's create a folder named "images" in the src folder.
  2. Place all your images inside the "images" folder.
  3. In your React component file, import the require context method as shown below:

How to upload multiple file using node js? ›

Upload multiple files in Node. js (video tutorial)
  1. Upload one image using the Node.js SDK.
  2. Run the code and get a response.
  3. Upload multiple images.
  4. Run the code and get a response.
  5. Install p-limit.
  6. Set the concurrent promise limit.
  7. Batch upload using p-limit.
  8. Run the batch upload.

How do I upload multiple files in React? ›

First, create the React app with the following command.
  1. create-react-app multiple-file-upload. ...
  2. <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
Jun 19, 2022

How do I upload multiple files at once? ›

Then, right-click and select Send to > Compressed (zipped) folder.
  1. Select a range of files: Click the first file, hold the SHIFT key (Mac and PC), then click the last file.
  2. Select multiple files: Click the first file, hold the CTRL key (PC) or OPTION key (Mac), then click the other files.

How do I combine multiple TS files into one .JS file? ›

How to compile multiple Typescript files into a single file ?
  1. tsc: It stands for TypeScript compiler which is used to invoke the compiler in order to compile the TypeScript files.
  2. –out: It is a CLI (Command Line Interface) command which concatenates the TypeScript files and emits the output to a single JS file.
Jan 3, 2023

How to select multiple files in React JS? ›

The file manager allows you to select multiple files by enabling the allowMultiSelection property (enabled by default). The multiple selection can be done by pressing the Ctrl key or Shift key and selecting the files.

How do I upload multiple images and preview it using ReactJS? ›

To upload image and preview it using React JS we will use the HTML file input for the image input. After taking input the image url is created using URL. createObjectURL() method and store in the useState variable named file. Display the image as preview using the html img tags with the file url in the src prop.

How do you pass multiple data in React? ›

In React, you can pass multiple parameters in a URL by including them as query parameters. Query parameters are key-value pairs added to the end of a URL, separated by "&".

Top Articles
Why China's Currency Tangos With The USD
Equity-Linked Note (ELN) Definition and Features
Woodward Avenue (M-1) - Automotive Heritage Trail - National Scenic Byway Foundation
Gamevault Agent
Retro Ride Teardrop
Poplar | Genus, Description, Major Species, & Facts
Owatc Canvas
Www Movieswood Com
What Was D-Day Weegy
Little Rock Arkansas Craigslist
Cincinnati Bearcats roll to 66-13 win over Eastern Kentucky in season-opener
Winterset Rants And Raves
Keniakoop
Dumb Money
Colts seventh rotation of thin secondary raises concerns on roster evaluation
Fairy Liquid Near Me
R Cwbt
U Break It Near Me
/Www.usps.com/International/Passports.htm
How many days until 12 December - Calendarr
Evil Dead Rise Showtimes Near Pelican Cinemas
THE FINALS Best Settings and Options Guide
Craigslist Dubuque Iowa Pets
Blackboard Login Pjc
Unable to receive sms verification codes
Cable Cove Whale Watching
Giantbodybuilder.com
Section 408 Allegiant Stadium
Sandals Travel Agent Login
Best Town Hall 11
Tu Housing Portal
Blush Bootcamp Olathe
Mark Ronchetti Daughters
RUB MASSAGE AUSTIN
Aliciabibs
The Best Restaurants in Dublin - The MICHELIN Guide
Sukihana Backshots
Armageddon Time Showtimes Near Cmx Daytona 12
Sand Castle Parents Guide
Anderson Tribute Center Hood River
Florida Lottery Claim Appointment
Shell Gas Stations Prices
Breaking down the Stafford trade
Interminable Rooms
Euro area international trade in goods surplus €21.2 bn
300+ Unique Hair Salon Names 2024
Blog Pch
Wrentham Outlets Hours Sunday
Renfield Showtimes Near Regal The Loop & Rpx
Jesus Calling Oct 6
Latest Posts
Article information

Author: Corie Satterfield

Last Updated:

Views: 6157

Rating: 4.1 / 5 (42 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Corie Satterfield

Birthday: 1992-08-19

Address: 850 Benjamin Bridge, Dickinsonchester, CO 68572-0542

Phone: +26813599986666

Job: Sales Manager

Hobby: Table tennis, Soapmaking, Flower arranging, amateur radio, Rock climbing, scrapbook, Horseback riding

Introduction: My name is Corie Satterfield, I am a fancy, perfect, spotless, quaint, fantastic, funny, lucky person who loves writing and wants to share my knowledge and understanding with you.