{"id":13408524,"url":"https://github.com/moxiecode/plupload","last_synced_at":"2025-05-11T03:39:02.567Z","repository":{"id":776953,"uuid":"467461","full_name":"moxiecode/plupload","owner":"moxiecode","description":"Plupload is JavaScript API for building file uploaders. It supports multiple file selection, file filtering, chunked upload, client side image downsizing and when necessary can fallback to alternative runtimes, like Flash and Silverlight.","archived":false,"fork":false,"pushed_at":"2024-07-18T14:21:35.000Z","size":10387,"stargazers_count":5629,"open_issues_count":206,"forks_count":1413,"subscribers_count":228,"default_branch":"master","last_synced_at":"2025-05-07T23:04:18.023Z","etag":null,"topics":["file-upload","file-utility","plupload"],"latest_commit_sha":null,"homepage":"http://www.plupload.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moxiecode.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-01-11T14:35:54.000Z","updated_at":"2025-04-28T04:02:50.000Z","dependencies_parsed_at":"2024-10-20T06:36:42.591Z","dependency_job_id":null,"html_url":"https://github.com/moxiecode/plupload","commit_stats":{"total_commits":1118,"total_committers":68,"mean_commits":"16.441176470588236","dds":0.315742397137746,"last_synced_commit":"d12175d4b5fa799b994ee1bb17bfbeec55b386fb"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moxiecode%2Fplupload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moxiecode%2Fplupload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moxiecode%2Fplupload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moxiecode%2Fplupload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moxiecode","download_url":"https://codeload.github.com/moxiecode/plupload/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252968114,"owners_count":21833251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file-upload","file-utility","plupload"],"created_at":"2024-07-30T20:00:53.411Z","updated_at":"2025-05-07T23:04:23.626Z","avatar_url":"https://github.com/moxiecode.png","language":"JavaScript","readme":"# Plupload\n\nPlupload is a cross-browser multi-runtime file uploading API. Basically, a set of tools that will help you to\nbuild a reliable and visually appealing file uploader in minutes.\n\nHistorically, Plupload comes from a dark and hostile age of no HTML5, hence all the alternative fallbacks,\nlike Flash, Silverlight and Java (still in development). It is meant to provide an API, that\nwill work anywhere and in any case, in one way or another. While having very solid fallbacks, Plupload\nis built with the future of HTML5 in mind.\n\n### Table of Contents\n* [Backstory](#backstory)\n* [Structure](#structure)\n  * [File API and XHR L2 pollyfills](https://github.com/moxiecode/moxie/blob/master/README.md)\n  * [Plupload API](https://github.com/moxiecode/plupload/wiki/API)\n  * [UI Widget](https://github.com/moxiecode/plupload/wiki/UI.Plupload)\n  * [Queue Widget](https://github.com/moxiecode/plupload/wiki/pluploadQueue)\n* [Demos](https://github.com/jayarjo/plupload-demos/blob/master/README.md)\n* [Building Instructions](#building-instructions)\n* [Getting Started](https://github.com/moxiecode/plupload/wiki/Getting-Started)\n  * [Options](https://github.com/moxiecode/plupload/wiki/Options)\n  * [Events](https://github.com/moxiecode/plupload/wiki/Uploader#wiki-events)\n  * [Methods](https://github.com/moxiecode/plupload/wiki/Uploader#wiki-methods)\n  * [Plupload in Your Language](https://github.com/moxiecode/plupload/wiki/Plupload-in-Your-Language)\n  * [File Filters](https://github.com/moxiecode/plupload/wiki/File-Filters)\n  * [Image Resizing on Client-Side](https://github.com/moxiecode/plupload/wiki/Image-Resizing-on-Client-Side)\n  * [Chunking](https://github.com/moxiecode/plupload/wiki/Chunking)\n  * [Upload to Amazon S3](https://github.com/moxiecode/plupload/wiki/Upload-to-Amazon-S3)\n* [FAQ](https://github.com/moxiecode/plupload/wiki/Frequently-Asked-Questions)\n* [Support](#support)\n  * [Create a Fiddle](https://github.com/moxiecode/plupload/wiki/Create-a-Fiddle)\n* [Contributing](#contributing)\n* [License](#license)\n* [Contact Us](http://www.moxiecode.com/contact.php)\n\n### Backstory\n\nPlupload started in a time when uploading a file in a responsive and customizable manner was a real pain.\nInternally, browsers only had the `input[type=\"file\"]` element. It was ugly and clunky at the same time.\nOne couldn't even change it's visuals, without hiding it and coding another one on top of it from scratch.\nAnd then there was no progress indication for the upload process... Sounds pretty crazy today.\n\nIt was very logical for developers to look for alternatives and writing their own implementations, using\nFlash and Java, in order to somehow extend limited browser capabilities. And so did we, in our search for\na reliable and flexible file uploader for\nour [TinyMCE](http://www.tinymce.com/index.php)'s\n[MCImageManager](http://www.tinymce.com/enterprise/mcimagemanager.php).\n\nQuickly enough though, Plupload grew big.  It easily split into a standalone project.\nWith major *version 2.0* it underwent another huge reconstruction, basically\n[from the ground up](http://blog.moxiecode.com/2012/11/28/first-public-beta-plupload-2/),\nas all the low-level runtime logic has been extracted into separate [File API](http://www.w3.org/TR/FileAPI/)\nand [XHR L2](http://www.w3.org/TR/XMLHttpRequest/) pollyfills (currently known under combined name of [mOxie](https://github.com/moxiecode/moxie)),\ngiving Plupload a chance to evolve further.\n\n### Structure\n\nCurrently, Plupload may be considered as consisting of three parts: low-level pollyfills,\nPlupload API and Widgets (UI and Queue). Initially, Widgets were meant only to serve as examples\nof the API, but quickly formed into fully-functional API implementations that now come bundled with\nthe Plupload API. This has been a source for multiple misconceptions about the API as Widgets were\neasily mistaken for the Plupload itself. They are only implementations, such as any of you can\nbuild by yourself out of the API.\n\n* [Low-level pollyfills (mOxie)](https://github.com/moxiecode/moxie) - have their own [code base](https://github.com/moxiecode/moxie) and [documentation](https://github.com/moxiecode/moxie/wiki) on GitHub.\n* [Plupload API](https://github.com/moxiecode/plupload/wiki/API)\n* [UI Widget](https://github.com/moxiecode/plupload/wiki/UI.Plupload)\n* [Queue Widget](https://github.com/moxiecode/plupload/wiki/pluploadQueue)\n\n### Building instructions\n\nPlupload depends on File API and XHR2 L2 pollyfills that currently have their\n[own repository](https://github.com/moxiecode/moxie) on GitHub. However, in most cases you shouldn't\ncare as we bundle the latest build of mOxie, including full and minified JavaScript source and\npre-compiled `SWF` and `XAP` components, with [every release](https://github.com/moxiecode/plupload/releases). You can find everything you may need under `js/` folder.\n\nThere are cases where you might need a custom build, for example free of unnecessary runtimes, half the\noriginal size, etc. The difficult part of this task comes from mOxie and its set of additional runtimes\nthat require special tools on your workstation in order to compile.\nConsider [build instructions for mOxie](https://github.com/moxiecode/moxie#build-instructions) -\neverything applies to Plupload as well.\n\nFirst of all, if you want to build custom Plupload packages you will require [Node.js](http://nodejs.org/),\nas this is our build environment of choice. Node.js binaries (as well as Source)\n[are available](http://nodejs.org/download/) for all major operating systems.\n\nPlupload includes _mOxie_ as a submodule, it also depends on some other repositories for building up it's dev\nenvironment - to avoid necessity of downloading them one by one, we recommended you to simply clone Plupload\nwith [git](http://git-scm.com/) recursively (you will require git installed on your system for this operation\nto succeed):\n\n```\ngit clone --recursive https://github.com/moxiecode/plupload.git\n```\n\nAnd finalize the preparation stage with: `npm install` - this will install all additional modules, including those\nrequired by dev and test environments. In case you would rather keep it minimal, add a `--production` flag.\n\n*Note:* Currently, for an unknown reason, locally installed Node.js modules on Windows, may not be automatically\nadded to the system PATH. So, if `jake` commands below are not recognized you will need to add them manually:\n\n```\nset PATH=%PATH%;%CD%\\node_modules\\.bin\\\n```\n### Support\n\nWe are actively standing behind the Plupload and now that we are done with major rewrites and refactoring,\nthe only real goal that we have ahead is making it as reliable and bulletproof as possible. We are open to\nall the suggestions and feature requests. We ask you to file bug reports if you encounter any. We may not\nreact to them instantly, but we constantly bear them in my mind as we extend the code base.\n\nIn addition to dedicated support for those who dare to buy our OEM licenses, we got\n[discussion boards](http://www.plupload.com/punbb/index.php), which is like an enormous FAQ,\ncovering every possible application case. Of course, you are welcome to file a bug report or feature request,\nhere on [GitHub](https://github.com/moxiecode/plupload/issues).\n\nSometimes it is easier to notice the problem when bug report is accompained by the actual code. Consider providing\n[a Plupload fiddle](https://github.com/moxiecode/plupload/wiki/Create-a-Fiddle) for the troublesome code.\n\n### Contributing\n\nWe are open to suggestions and code revisions, however there are some rules and limitations that you might\nwant to consider first.\n\n* Code that you contribute will automatically be licensed under the AGPL, but will not be limited to AGPL.\n* Although all contributors will get the credit for their work, copyright notices will be changed to [Moxiecode Systems AB](http://www.moxiecode.com/).\n* Third party code will be reviewed, tested and possibly modified before being released.\n\nThese basic rules help us earn a living and ensure that code remains Open Source and compatible with AGPL license. All contributions will be added to the changelog and appear in every release and on the site.\n\nAn easy place to start is to [translate Plupload to your language](https://github.com/moxiecode/plupload/wiki/Plupload-in-Your-Language#contribute).\n\nYou can read more about how to contribute at: [http://www.plupload.com/contributing](http://www.plupload.com/contributing)\n\n### License\n\nCopyright 2016, [Ephox](http://www.ephox.com/).  \nReleased under [AGPL-3.0 License](https://github.com/moxiecode/plupload/blob/master/license.txt).\n\nWe also provide [commercial license](http://www.plupload.com/commercial.php).\n","funding_links":[],"categories":["JavaScript","Form Widgets","Form Widgets [🔝](#readme)","UI","10. 表单处理","Programming Languages","Repository","表单组件"],"sub_categories":["File Uploader","文件上传","10.4 上传组件 ###","JavaScript","Form","10.5 上传组件"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoxiecode%2Fplupload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoxiecode%2Fplupload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoxiecode%2Fplupload/lists"}