whatisgithub

What is plupload?

moxiecode/plupload — explained in plain English

Analysis updated 2026-06-26

5,623JavaScriptAudience · developerComplexity · 2/5LicenseSetup · moderate

In one sentence

A JavaScript library for adding file uploads to websites, with support for chunked uploads, image resizing in the browser, and upload progress tracking.

Mindmap

mindmap
  root((Plupload))
    What it does
      File upload library
      Progress tracking
      Chunked uploads
      Browser image resize
    Components
      mOxie compat layer
      Plupload API
      Drop zone widget
      Queue widget
    Use Cases
      Custom upload UI
      Large file uploads
      S3 direct upload
    Audience
      Web developers
      Frontend engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add drag-and-drop file uploads with progress bars to a web application using the bundled widget.

USE CASE 2

Upload large files reliably by breaking them into chunks so interrupted uploads can resume where they left off.

USE CASE 3

Resize images inside the browser before uploading to reduce file sizes without needing server-side processing.

USE CASE 4

Build a custom upload interface using the low-level Plupload API rather than using the default widget.

What is it built with?

JavaScriptNode.js

How does it compare?

moxiecode/pluploadquarto-dev/quarto-cligothinkster/react-redux-realworld-example-app
Stars5,6235,6265,627
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderateeasyeasy
Complexity2/53/52/5
Audiencedeveloperresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Clone the repo recursively to include the mOxie submodule, requires Node.js tooling to build from source.

Released under AGPL, free to use but if you distribute a product using it you must also share your source code under AGPL.

So what is it?

Plupload is a JavaScript library for adding file uploads to websites and web applications. It gives developers a programming interface for handling the full upload process, from selecting files on a user's computer to sending them to a server. Developers who need flexible, reliable file uploads use it as the foundation for building their own upload interfaces. The library was originally created because web browsers had very limited built-in upload support. The standard HTML file input was visually inflexible and offered no progress indicators. Plupload filled that gap by providing a consistent API, including fallbacks for older environments using Flash or Silverlight, so the same code could run across different browsers and years of browser versions. Plupload has three main parts. The low-level layer, called mOxie, handles browser differences under the hood and acts as a compatibility shim. On top of that sits the Plupload API itself, which controls how files are selected, filtered, and sent. Two ready-made interface widgets, one for a drag-and-drop panel and one for a queue view, come bundled with the release as examples of what the API can produce. Beyond basic file selection, the library supports sending large files in smaller pieces (called chunking) so that interrupted uploads can resume without starting over. It can also shrink images inside the browser before sending them, reducing upload sizes without extra server work. Uploads to Amazon S3 are covered in its documentation as a standard use case. The project is licensed under AGPL. Code contributions are welcome through GitHub, though contributed code becomes AGPL-licensed and copyright transfers to Moxiecode Systems AB. The library is built using Node.js tooling, and the source includes a submodule for the mOxie layer, so cloning it recursively is the recommended setup step.

Copy-paste prompts

Prompt 1
I want to add a drag-and-drop file upload panel to my website using Plupload. Show me the minimal HTML and JavaScript to get the bundled drop zone widget working.
Prompt 2
How do I configure Plupload to upload large files in chunks so the upload can resume if the connection drops?
Prompt 3
I need Plupload to resize images to a max of 1200px wide before sending them to my server. What configuration option does that?
Prompt 4
Show me how to set up Plupload to upload files directly to Amazon S3 without going through my own server.
Prompt 5
How do I hook into Plupload's events to show a custom progress bar and a success message when an upload finishes?

Frequently asked questions

What is plupload?

A JavaScript library for adding file uploads to websites, with support for chunked uploads, image resizing in the browser, and upload progress tracking.

What language is plupload written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js.

What license does plupload use?

Released under AGPL, free to use but if you distribute a product using it you must also share your source code under AGPL.

How hard is plupload to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is plupload for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.