What is @uppy/core?
@uppy/core is a modular JavaScript file uploader that integrates with various file sources and provides a highly customizable and extensible API for handling file uploads.
What are @uppy/core's main functionalities?
File Selection
This feature allows users to select files from their local system using a customizable dashboard interface.
const Uppy = require('@uppy/core');
const Dashboard = require('@uppy/dashboard');
const uppy = Uppy();
uppy.use(Dashboard, {
inline: true,
target: 'body'
});
File Upload
This feature enables the uploading of selected files to a specified endpoint using XHR (XMLHttpRequest).
const Uppy = require('@uppy/core');
const XHRUpload = require('@uppy/xhr-upload');
const uppy = Uppy();
uppy.use(XHRUpload, {
endpoint: 'https://my-upload-endpoint.com/upload'
});
uppy.upload().then((result) => {
console.log('Upload complete:', result);
});
Progress Tracking
This feature provides a progress bar to track the upload progress of files.
const Uppy = require('@uppy/core');
const ProgressBar = require('@uppy/progress-bar');
const uppy = Uppy();
uppy.use(ProgressBar, {
target: 'body',
hideAfterFinish: false
});
File Validation
This feature allows for custom validation of files before they are uploaded, such as checking file size or type.
const Uppy = require('@uppy/core');
const uppy = Uppy();
uppy.on('file-added', (file) => {
if (file.size > 1000000) { // 1MB
uppy.removeFile(file.id);
alert('File is too large!');
}
});
Other packages similar to @uppy/core
dropzone
Dropzone is a popular JavaScript library that provides drag-and-drop file uploads with image previews. It is less modular than @uppy/core but offers a simpler setup for basic use cases.
fine-uploader
Fine Uploader is a comprehensive JavaScript library for file uploads that supports various features like chunking, retry, and concurrent uploads. It is more feature-rich but also more complex compared to @uppy/core.
plupload
Plupload is a JavaScript library that handles file uploads with support for multiple runtimes (HTML5, Flash, Silverlight, etc.). It is similar in functionality to @uppy/core but may require more configuration for advanced use cases.
@uppy/core
Uppy is a sleek, modular JavaScript file uploader that integrates seamlessly
with any application. It’s fast, provides a comprehensible API and lets you
worry about more important problems than building a file uploader.
- Fetch files from local disk, remote urls, Google Drive, Dropbox,
Instagram, or snap and record selfies with a camera;
- Preview and edit metadata with a nice interface;
- Upload to the final destination, optionally process/encode
Read the docs |
Try Uppy
Uppy is being developed by the folks at Transloadit,
a versatile file encoding service.
Example
import Uppy from '@uppy/core'
const uppy = new Uppy()
uppy.use(SomePlugin)
Installation
$ npm install @uppy/core
Alternatively, you can also use this plugin in a pre-built bundle from
Transloadit’s CDN: Edgly. In that case Uppy
will attach itself to the global
window.Uppy
object. See the
main Uppy documentation for instructions.
Documentation
Documentation for this plugin can be found on the
Uppy website.
License
The MIT License.
4.0.0-beta.8
Released: 2024-05-22
| Package | Version | Package | Version |
| -------------------- | ------------ | -------------------- | ------------ |
| @uppy/aws-s3 | 4.0.0-beta.4 | @uppy/status-bar | 4.0.0-beta.8 |
| @uppy/companion | 5.0.0-beta.7 | @uppy/svelte | 4.0.0-beta.4 |
| @uppy/compressor | 2.0.0-beta.8 | @uppy/tus | 4.0.0-beta.5 |
| @uppy/core | 4.0.0-beta.8 | @uppy/utils | 6.0.0-beta.7 |
| @uppy/dashboard | 4.0.0-beta.8 | @uppy/vue | 2.0.0-beta.3 |
| @uppy/image-editor | 3.0.0-beta.5 | @uppy/webcam | 4.0.0-beta.7 |
| @uppy/provider-views | 4.0.0-beta.6 | uppy | 4.0.0-beta.8 |
- @uppy/core: resolve some (breaking) TODOs (Antoine du Hamel / #4824)
- @uppy/companion: encode
uploadId
(Mikael Finstad / #5168) - @uppy/companion: bump
express-session
(Antoine du Hamel / #5177) - @uppy/companion: remove dependency on
express-request-id
(Antoine du Hamel / #5176) - @uppy/companion: bump prom to v15 (Antoine du Hamel / #5175)
- docs: fix linter (Antoine du Hamel)
- meta: remove
nodemon
from the deps (Antoine du Hamel / #5172) - docs: update
@uppy/aws-s3
docs (Antoine du Hamel / #5093) - meta: update more dependencies (Antoine du Hamel / #5171)
- @uppy/companion: upgrade deps (Antoine du Hamel / #5119)