0.0.8 β’ Published 4 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-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
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