0.0.8 β€’ Published 4 months ago

react-background-file-uploader v0.0.8

Weekly downloads
-
License
-
Repository
github
Last release
4 months ago

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-uploader

or 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

MethodDescription
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

PropertyTypeDescription
idstringUnique file identifier.
fileFileFile object being uploaded.
progressnumberUpload 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

  1. Fork this repository
  2. Clone it: git clone https://github.com/akshays-repo/react-background-file-uploader
  3. Install dependencies: pnpm install
  4. Make your changes and submit a PR πŸš€

πŸ“œ License

MIT License Β© 2025 Akshay S

πŸ‘¨β€πŸ’» Author

πŸ” 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