0.0.8 β’ Published 8 months ago
react-background-file-uploader v0.0.8
React File Uploader - Seamless Background Uploads
Easily upload files in the background while navigating between pagesβjust like Google Drive! π
π Features
- π Background Uploads β Continue uploading files even when navigating between pages.
 - β‘ Concurrent Uploads β Control the number of parallel uploads.
 - π Progress Tracking β Real-time upload progress for each file.
 - β Cancel Uploads β Stop an ongoing upload anytime.
 
π¦ Installation
pnpm add react-background-file-uploaderor using npm:
npm install react-background-file-uploaderπ Quick Start
import { useBackgroundFileUpload } from "react-background-file-uploader";
const FileUploader = () => {
  const { uploads, addUpload, startUpload, cancelUpload } = useBackgroundFileUpload();
  const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    const files = event.target.files;
    if (files) {
      Array.from(files).forEach((file) => addUpload(file));
    }
  };
  return (
    <div>
      <input type="file" multiple onChange={handleFileChange} />
      <button onClick={() => startUpload("https://your-upload-endpoint.com")}>Upload</button>
      <ul>
        {uploads.map((upload) => (
          <li key={upload.id}>
            {upload.file.name} - {upload.progress}%
            <button onClick={() => cancelUpload(upload.id)}>Cancel</button>
          </li>
        ))}
      </ul>
    </div>
  );
};
export default FileUploader;π API Reference
useBackgroundFileUpload()
This hook provides all the necessary upload functions.
Methods
| Method | Description | 
|---|---|
addUpload(file: File) | Adds a file to the upload queue. | 
startUpload(url: string, options?: UploadOptions) | Starts uploading queued files. | 
cancelUpload(id: string) | Cancels an active upload. | 
cancelAllUploads() | Cancels all uploads that are in progress or pending. | 
setMaxConcurrent(count: number) | Sets the maximum number of concurrent uploads. | 
Upload Object
| Property | Type | Description | 
|---|---|---|
id | string | Unique file identifier. | 
file | File | File object being uploaded. | 
progress | number | Upload progress percentage. | 
status | 'pending' 'uploading' 'success' 'failed' | Current upload status. | 
β Configuration
You can customize the uploader with options such as headers, body parameters, and error handling:
startUpload("https://your-upload-endpoint.com", {
  headers: { Authorization: "Bearer token" },
  extraBody: { folder: "uploads" },
  onSuccess: (file, response) => console.log("Upload Success", file, response),
  onError: (file, error) => console.error("Upload Failed", file, error),
  onAbort: (file) => console.warn("Upload Aborted", file),
});π Live Example
Check out the live example: React Background File Uploader Example
Explore the example code: GitHub Example
π€ Contributing
- Fork this repository
 - Clone it: 
git clone https://github.com/akshays-repo/react-background-file-uploader - Install dependencies: 
pnpm install - Make your changes and submit a PR π
 
π License
MIT License Β© 2025 Akshay S
π¨βπ» Author
- Akshay S
 - π§ Email: akshayshan28@gmail.com
 
π Keywords
React file uploader, background file upload, resumable upload, React file upload hook, concurrent file upload, real-time file upload, cancel file upload, upload progress tracking, seamless file upload, React background uploader