explaingit

moxiecode/plupload

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

TLDR

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

Things people build with this

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.

Tech stack

JavaScriptNode.js

Getting 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.

In plain English

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?
Open on GitHub → Explain another repo

← moxiecode on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.