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.

Overview

Plupload

Plupload is a cross-browser multi-runtime file uploading API. Basically, a set of tools that will help you to build a reliable and visually appealing file uploader in minutes.

Historically, Plupload comes from a dark and hostile age of no HTML5, hence all the alternative fallbacks, like Flash, Silverlight and Java (still in development). It is meant to provide an API, that will work anywhere and in any case, in one way or another. While having very solid fallbacks, Plupload is built with the future of HTML5 in mind.

Table of Contents

Backstory

Plupload started in a time when uploading a file in a responsive and customizable manner was a real pain. Internally, browsers only had the input[type="file"] element. It was ugly and clunky at the same time. One couldn't even change it's visuals, without hiding it and coding another one on top of it from scratch. And then there was no progress indication for the upload process... Sounds pretty crazy today.

It was very logical for developers to look for alternatives and writing their own implementations, using Flash and Java, in order to somehow extend limited browser capabilities. And so did we, in our search for a reliable and flexible file uploader for our TinyMCE's MCImageManager.

Quickly enough though, Plupload grew big. It easily split into a standalone project. With major version 2.0 it underwent another huge reconstruction, basically from the ground up, as all the low-level runtime logic has been extracted into separate File API and XHR L2 pollyfills (currently known under combined name of mOxie), giving Plupload a chance to evolve further.

Structure

Currently, Plupload may be considered as consisting of three parts: low-level pollyfills, Plupload API and Widgets (UI and Queue). Initially, Widgets were meant only to serve as examples of the API, but quickly formed into fully-functional API implementations that now come bundled with the Plupload API. This has been a source for multiple misconceptions about the API as Widgets were easily mistaken for the Plupload itself. They are only implementations, such as any of you can build by yourself out of the API.

Building instructions

Plupload depends on File API and XHR2 L2 pollyfills that currently have their own repository on GitHub. However, in most cases you shouldn't care as we bundle the latest build of mOxie, including full and minified JavaScript source and pre-compiled SWF and XAP components, with every release. You can find everything you may need under js/ folder.

There are cases where you might need a custom build, for example free of unnecessary runtimes, half the original size, etc. The difficult part of this task comes from mOxie and its set of additional runtimes that require special tools on your workstation in order to compile. Consider build instructions for mOxie - everything applies to Plupload as well.

First of all, if you want to build custom Plupload packages you will require Node.js, as this is our build environment of choice. Node.js binaries (as well as Source) are available for all major operating systems.

Plupload includes mOxie as a submodule, it also depends on some other repositories for building up it's dev environment - to avoid necessity of downloading them one by one, we recommended you to simply clone Plupload with git recursively (you will require git installed on your system for this operation to succeed):

git clone --recursive https://github.com/moxiecode/plupload.git

And finalize the preparation stage with: npm install - this will install all additional modules, including those required by dev and test environments. In case you would rather keep it minimal, add a --production flag.

Note: Currently, for an unknown reason, locally installed Node.js modules on Windows, may not be automatically added to the system PATH. So, if jake commands below are not recognized you will need to add them manually:

set PATH=%PATH%;%CD%\node_modules\.bin\

Support

We are actively standing behind the Plupload and now that we are done with major rewrites and refactoring, the only real goal that we have ahead is making it as reliable and bulletproof as possible. We are open to all the suggestions and feature requests. We ask you to file bug reports if you encounter any. We may not react to them instantly, but we constantly bear them in my mind as we extend the code base.

In addition to dedicated support for those who dare to buy our OEM licenses, we got discussion boards, which is like an enormous FAQ, covering every possible application case. Of course, you are welcome to file a bug report or feature request, here on GitHub.

Sometimes it is easier to notice the problem when bug report is accompained by the actual code. Consider providing a Plupload fiddle for the troublesome code.

Contributing

We are open to suggestions and code revisions, however there are some rules and limitations that you might want to consider first.

  • Code that you contribute will automatically be licensed under the AGPL, but will not be limited to AGPL.
  • Although all contributors will get the credit for their work, copyright notices will be changed to Moxiecode Systems AB.
  • Third party code will be reviewed, tested and possibly modified before being released.

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

An easy place to start is to translate Plupload to your language.

You can read more about how to contribute at: http://www.plupload.com/contributing

License

Copyright 2016, Ephox.
Released under AGPL-3.0 License.

We also provide commercial license.

Comments
  • HTML5 uploading breaks on Safari 5.1 (OS X Lion DP4)

    HTML5 uploading breaks on Safari 5.1 (OS X Lion DP4)

    The string [object File] gets uploaded in lieu of file content.

    Safari version is 5.1 (7534.45) which comes with the latest preview of Mac OS X Lion. Tested on Chrome, etc. it works fine.

    Config follows:

    var uploader = new plupload.Uploader({
      runtimes:            "html5,flash,silverlight,gears,browserplus,html4",
      browse_button:       'browser',
      container:           'container',
      drop_element:        'dropper',
      max_file_size:       '50mb',
      url:                 resources,
      flash_swf_url:       "/javascripts/lib/plupload.flash.swf",
      silverlight_xap_url: "/javascripts/lib/plupload.silverlight.xap",
      multipart:           true,
      multipart_params: {
        authenticity_token: $('meta[name=csrf-token]').attr('content')
      }
    });
    
    opened by scomma 83
  • Resize images - poor quality

    Resize images - poor quality

    (also posted in forum on plupload.com) After trying, buying and working days to implement Plupload 2 properly I am very unpleasantly surprised by the poor quality of resized images. It is not obvious on all photos, so I missed it at first. But on a lot of images you cannot ignore it. My goal is to use it for photography sites, so this is really not working good enough. (And before you suggest resizing on server; that way full size images have to be uploaded, this takes far too much time.)

    It appears to happen in all runtimes (Flash, Silverlight and HTML5). Example: http://www.anothersite.nl/plupload.jpg - left=original, right=resized

    I don't know how the client side resizing is done, but I do know that the wrong resample method is used! The used method preserves the hard edges. Programs like Photoshop or Irfanview offer different good methods for resampling.

    So, my question: is it possible to use another, better method for (client side) resampling?

    opened by robfaas 69
  • Support for IE10 drop zone upload

    Support for IE10 drop zone upload

    I know, that on http://www.plupload.com/index.php page it's explicitly said, that IE 10 isn't supported.

    Is there any way to get dropzone upload support working in IE 10?

    opened by aik099 33
  • 1.5.1.1 with Flash runtime random freeze

    1.5.1.1 with Flash runtime random freeze

    I'm using plupload 1.5.1.1 with enabled resize and Flash runtime as primary. When i try to upload multiple files - uploader freeze on random file in queue without any error, warnings on client and server. In log the next file doesn't start uploading (may be freeze on resize level)... Without resize enabled all files uploaded fine. It seems problem occured with flash player 11 installed, with flash player 10 uploads and resize fine. My tests results: IE8 + flash player 10 - fine IE8 + flash player 11 - freeze Firefox + flash player 11 - freeze Firefox + html5 - very fast and fine!

    opened by Denozawr 31
  • HTML5 Upload fails for multiple files on latest Safari for Windows

    HTML5 Upload fails for multiple files on latest Safari for Windows

    The current stable Safari for Windows has a bug that causes the upload of multiple files through the HTML5 runtime to fail. Curiously upload through HTML5 still works if only a single file is selected.

    The problem seems to be related to the FileList object available through the input element. When more than one file is selected the file sizes are set to 0, the modification time is also set to 0. The resulting upload through the FormData object will upload a zero length (i.e. empty) file.

    This bug does not seem to be a web-kit bug as the latest Chrome does not have the same problem.

    I've logged an issue with Apple against Safari.

    I've also created a basic test case that uses the same technique to upload files that plupload does using HTML5 on Safari. The test case is available here:

    https://gist.github.com/1169709

    (By the way I have not coded the test case to work around this webkit form bug which you may run into the second time you select files using the test)

    opened by MCF 31
  • Video Uploads don't appear to work on iOS 7

    Video Uploads don't appear to work on iOS 7

    Video uploads were working on iOS 6 but do not work on iOS 7. I can upload photos of any type or size from either os.

    When trying to upload a video in iOS 7 it will show up in the file list but will not report a size. If I remove plupload from the equation and upload the video using a simple file form it appears to work.

    opened by ChristopherBrand 27
  • Plupload jquery library not working in IE10

    Plupload jquery library not working in IE10

    I have a website where user's can upload their images. I am struck at IE10 not bringing file upload folder. I am using Plupload jQuery files with latest version(v1.5.6). It works very well with Firefox, Opera, Chrome and IE9 but not IE10.

    Clicking on 'Upload' button does nothing but i can see new Div and input control created as

    <div id="p17nd09rko1s8c1vaf1a401nkm1ph00_html5_container" class="plupload html5" style="position: absolute; background: none repeat scroll 0% 0% transparent; width: 0px; height: 0px; overflow: hidden; z-index: -1; opacity: 0; top: 0px; left: 0px;">
    <input id="p17nd09rko1s8c1vaf1a401nkm1ph00_html5" type="file" multiple="multiple" accept="image/jpeg,image/gif,image/png" style="font-size: 999px; float:right">
    </div>
    

    I think it is unable to hook with 'browse_button' value in var uploader = new plupload.Uploader({.. })

    Another thing I see is CSS generated is different in IE as compared to Mozilla.

    My javascript

    var uploader = new plupload.Uploader({
                runtimes : 'gears,html5,flash,silverlight,browserplus',
                browse_button : 'pickfiles',
                container : 'container',
                chunk_size: '1mb',
                unique_names: true,
                max_file_size : '5mb',
                max_file_count : 1,
                multi_selection: true,
                url: '<!-- my url -->',
                filters: [{ title: "Image files", extensions: 'jpg'}],
                flash_swf_url: '@Url.Content( "~/Scripts/plup/plupload.flash.swf" )',
                silverlight_xap_url: '@Url.Content("~/Scripts/plup/plupload.silverlight.xap")'
            });
    

    Hope someone please help me with this?

    opened by Jugsal 25
  • Amazon httpS

    Amazon httpS

    Hi,

    googling about Amazon and Plupload I read about this concern: " How do you ensure that the user’s browser communicates only with Amazon S3 and not an impersonator."

    And the solution was simply using the HTTPS protocol, but this does not work with Plupload.

    I would like to know if this is important to take care off, or not and that's why is not supported.

    Thanks, loving Plupload more each day :)

    opened by miljan-aleksic 24
  • mOxie is undefined

    mOxie is undefined

    Hi, I'm trying to use plupload (v1.2.1) in a CommonJS / Browserify environment

    var plupload = require('libs/plupload/js/plupload.full.min');
    

    But when that require runs I always get mOxie is undefined:

    plupload.full.min.js:28 Uncaught ReferenceError: mOxie is not defined
    

    Does plupload strictly depend on the mOxie module?

    Im not sure this is related to being run in a CommonJS environment. I've looked into the source of plupload.dev.js and moxie.js and they don't seem to use the UMD pattern. Are they compatible with CommonJS?

    opened by antoniobrandao 23
  • Chrome Error with Flash

    Chrome Error with Flash

    Uploading directly to S3, there is an issue with Chrome's Flash. Amazon returns a '201 Created' response to Chrome, but somehow the flash front-end thinks it's an error and throws an error #2038.

    Files are uploaded fine to S3. This does not occur in other browsers/platforms.

    Duplicate 
    opened by gnxrob 23
  • Drag & Drop support of folders (Chrome >= 21)

    Drag & Drop support of folders (Chrome >= 21)

    Chrome 21 implemented the possibility for folder drag & drop.

    This patch adds a "relativePath" property to each instance of plupload.File.

    Example: http://protonet.github.com/plupload/examples/drag_and_drop.html More details to the chrome implementation: http://wiki.whatwg.org/wiki/DragAndDropEntries Chromium issue: http://code.google.com/p/chromium/issues/detail?id=99823

    Also this patch makes sure that the default behavior within dragover is only prevented when the drag contains any files otherwise there will be problems when eg. the drop_element is a <textarea> and the user is dragging text around.

    opened by tiff 23
  • PDF file upload fails with 403 error

    PDF file upload fails with 403 error

    Hi,

    Please find attached a PDF file. This file will not upload to Wordpress. The process fails with a 403 error. We have spent many hours trying to work out where the issue lies and it seems to be with the PDF file itself. We have many other PDF files with the same fonts and styles and those seem to upload without issue.

    The file seems to upload ok but fails when the file is attempting to be reconstructed and/or saved. Please also find attached an image of the console that shows the failed request and the stack trace.

    The PDF file has all fonts embedded and displays correctly on a range of computers and mobile devices.

    Uploading the PDF file via PDF into the uploads folder then adding the file to the server via a plugin works fine.

    I reverted the libraries to the non-min versions so you can see which lines the process is ultimately failing on.

    We have tried uploading this file in different versions of Wordpress (5.8 and 6.0.2) from different computers and in different web hosting environments. We have also tried disabling all plugins and even creating a completely vanilla install of Wordpress.

    The file is consistently rejected.

    There was one exception, on my Dev computer the upload works, however I do have the Adobe suite installed on it.

    We are hoping you can provide some concrete advice that to what exactly is the issue with this file.

    Park Lake Brochure Final V2.pdf plupload-fail-403-console-stack-trace

    Let me know if you require any further information.

    Cheers

    opened by gjohncock 0
  • PDF Preview in Dialog ?

    PDF Preview in Dialog ?

    Not sure if anyone has already done this or is interested, but I added some code in my version that generates a PDF preview if the document being uploaded is a PDF document. I'd have to go back and look what I actually did, but the result is like this:

    image

    Looks like it is in the FilesAdded event handler and requires adding:

    FilesAdded: function(up, files) {
        // Called when files are added to queue
        log('[FilesAdded]');
    
        plupload.each(files, function(file) {
            //log('  File:', file.id);
            if(file.type == "application/pdf"){
            var fileReader = new FileReader();
            fileReader.onload = function() {
    
                var pdfData = new Uint8Array(this.result);
                // Using DocumentInitParameters object to load binary data.
                var loadingTask = pdfjsLib.getDocument({data: pdfData});
                loadingTask.promise.then(function(pdf) {
                    console.log('PDF loaded');
    
                    // Fetch the first page
                    var pageNumber = 1;
                    pdf.getPage(pageNumber).then(function(page) {
                    // console.log(page._pageInfo.view);
                    scale = 120 / (Math.max(page._pageInfo.view[2], page._pageInfo.view[3])) ;
                    console.log('Page loaded');
                    var viewport = page.getViewport({scale: scale});
                    // Prepare canvas using PDF page dimensions
                    let thumbcontainer = $('[id=' + file.id + ']').find(".plupload_file_dummy");
                    var canvas = loadCanvas(thumbcontainer[0]);
                    var context = canvas.getContext('2d');
                    // Render PDF page into canvas context
                    var renderContext = {
                    canvasContext: context,
                    viewport: viewport
                    };
                    var renderTask = page.render(renderContext);
                    renderTask.promise.then(function () {
                    console.log('Page rendered');
                    });
                });
                }, function (reason) {
                // PDF loading error
                console.error(reason);
                });
            };
            fileReader.readAsArrayBuffer(file.getSource().getSource());
            }
        });
    
    },
    
    
    opened by sscotti 0
  • Maintainer Contact

    Maintainer Contact

    Hey,

    I'm Hadas from the Snyk security team, I've been trying to contact your team via email from a while now. Is there any way to contact privately?

    Thanks!

    opened by hadasbloom 0
  • DOMException 12 when calling start()

    DOMException 12 when calling start()

    I get a DOMException 12 "Syntax err" when calling start() to upload selected files. This happens for some reason after I updated my Vue.js from 2.6.13 to 2.6.14 - when I downgrade it works again.

    I googled this error and found other people with the same problem, unfortunately none of their solutions (correct ids, using setTimeout() to start upload) worked.

    opened by bscdko 1
Releases(v3.1.5)
  • v3.1.5(Nov 15, 2021)

  • v3.1.4(Nov 15, 2021)

  • v2.3.9(Nov 15, 2021)

  • v2.3.8(Nov 15, 2021)

  • v3.1.3(Mar 29, 2021)

  • v2.3.7(Mar 29, 2021)

  • v3.1.2(Feb 20, 2018)

    Changelog

    • Add new file filter: prevent_empty - that will filter out 0kb files if enabled.
    • Fix HTTP error handling.
    • Fix regression in ImageResizer.
    • Fix regression in Queue affecting IE8.
    • Disable auto pause/resume of the Queue.
    • Update mOxie to: v1.5.8.
    Source code(tar.gz)
    Source code(zip)
  • v2.3.6(Nov 3, 2017)

  • v3.1.1(Oct 3, 2017)

    Changelog

    • Fix not being able to resize detached blob (created from dataUrl or binary string) that was added via uploader.addFile().
    • Consider HTTP status below 200 an error as well (mostly because when connection breaks, HTTP status might be reported as 0).
    • Expose whole moxie namespace under plupload.moxie (mostly for smooth integration into environments like Webpack).
    • Update mOxie to: v1.5.6.
    Source code(tar.gz)
    Source code(zip)
  • v2.3.4(Oct 2, 2017)

    Changelog

    • Fix not being able to resize detached blob (created from dataUrl or binary string) that was added via uploader.addFile().
    • Consider HTTP status below 200 an error as well (mostly because when connection breaks, HTTP status might be reported as 0).
    • Do not set inner global xhr var to null onloadend of any single instance (which caused random errors during the upload).
    • Expose whole moxie namespace under plupload.moxie (mostly for smooth integration into environments like Webpack).
    • Add new filter prevent_empty, which filters out empty files by default, but can be turned off if required.
    • Update Russian, Latvian and German language packs.
    • Update mOxie to: v1.5.6.
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Mar 7, 2017)

    Changelog

    • Queue now inherits from Queueable (basically this is the main reason why I've incremented version to 3.1.0).
    • Numerous inconsistencies were addressed, since beta release.
    • Update mOxie to: v1.5.3.
    Source code(tar.gz)
    Source code(zip)
  • v2.3.1(Feb 6, 2017)

    Changelog

    • Marked all NPM dependencies as dev (this will make NPM package so much lighter).
    • Add BeforeChunkUpload event.
    • Fix event-based invocation of chunk uploading, where it wasn't possible to unbind from the event properly.
    • Add new option http_method (basically to support PUT).
    • Fix bytesPerSec reporting.
    • Treat extensions in accept option as case-insensitive.
    • Do not add mime types into accept attribute, when browser can filter by extensions only.
    • Fix processing of scheme-less URLs, like: //domain.com.
    • UI: Fix regression where thumbnails weren't scaled when cropped.
    • UI/Queue: Renaming and removing should be possible for queued files only.
    • Update Spanish, Polish ans Swedish language packs.
    • Update mOxie to: v1.5.3.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.1(Nov 23, 2016)

    Changelog

    • Update mOxie to: v1.5.2.
    • Improved quality for client-side image resizing (bilinear resampling).
    • Add AMD/CommonJS support via UMD-like wrapper.
    • Drop mOxie and o namespaces. Majority of helper methods are also accessible from plupload namespace or moxie namespace (yep, there were too many, sorry).
    Source code(tar.gz)
    Source code(zip)
  • v3.0-beta1(Aug 24, 2016)

    Changelog

    • Major rewrite (finally split the code into separate modules).
    • Simultaneous uploads of files and chunks.
    • Better control on chunks.
    • Separate queue for image resizing.
    • Improved quality for client-side image resizing (bilinear resampling).
    • Update mOxie to: v1.5-beta.2.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.9(May 15, 2016)

  • v2.1.8(Jul 21, 2015)

    Changelog

    • UI: Fix thumbs not being cropped.
    • UI: Fix dummy covering thumb after upload.
    • UI: Store the options after they are merged and normalised.
    • UI: Rename start and stop events to started and stopped and fix them.
    • UI: Add server response to uploaded event.
    • Fix event binding/unbinding logic by partially reverting it.
    • Fix UA parser bug that made v2.1.5 unusable.
    • Update Latvian language pack. Remove redundant Serbian language pack.
    • Update moxie to v1.3.4
    Source code(tar.gz)
    Source code(zip)
  • v2.1.4(May 25, 2015)

  • v2.1.3(May 11, 2015)

    Changelog

    • Add Catalan, Vietnamese language packs. Update Albanian.
    • Add Bulgarian and Kurdish lang packs. Update Armenian.
    • Flash: swf shouldn't accept any parameters via query string when loaded directly.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Jan 16, 2014)

FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.

FileAPI A set of JavaScript tools for working with files. Get started Download the files from the dist directory, and then: <div> <!-- "js-fileapi-

Free and open source software developed at Mail.Ru 3.6k Jan 3, 2023
Multiple file upload plugin with image previews, drag and drop, progress bars. S3 and Azure support, image scaling, form support, chunking, resume, pause, and tons of other features.

Fine Uploader is no longer maintained and the project has been effectively shut down. For more info, see https://github.com/FineUploader/fine-uploader

Fine Uploader 8.2k Jan 2, 2023
A JavaScript library providing multiple simultaneous, stable, fault-tolerant and resumable/restartable file uploads via the HTML5 File API.

Flow.js Flow.js is a JavaScript library providing multiple simultaneous, stable and resumable uploads via the HTML5 File API. (Demo) The library is de

HTML5 File upload 2.9k Dec 18, 2022
Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars.

Dropzone is a JavaScript library that turns any HTML element into a dropzone. This means that a user can drag and drop a file onto it, and Dropzone wi

Dropzone 17k Dec 30, 2022
🌊 A flexible and fun JavaScript file upload library

A JavaScript library that can upload anything you throw at it, optimizes images for faster uploads, and offers a great, accessible, silky smooth user

pqina 13.2k Jan 3, 2023
Multi Upload with Progress Bar in Vanilla JS

js-progress-bar-multi-upload Multi Upload with Progress Bar in Vanilla JS Youtube dersinde birlikte hazırladığımız çoklu progress barlı javascript upl

Tayfun Erbilen 11 Jun 10, 2022
runk is a simple file and folder sharer.

runk It is a simple file and folder sharer. It uses hyperswarm for sharing over network. Installation: Prerequisite: Node.js To mount, configured fuse

Amansinh Parmar 8 Mar 11, 2022
A simple React App that plays Public Domain TV shows and integrates with Twitch Chat for the controls.

Public Domain Television for Twitch This application plays movies from Public Domain Movies The current version is only used to play Cartoons, but can

Ravavyr 8 Mar 29, 2022
A Javascript library for working with Audio. It provides a consistent API for loading and playing audio on different browsers and devices. Currently supports WebAudio, HTML5 Audio, Cordova / PhoneGap, and a Flash fallback.

SoundJS SoundJS is a library to make working with audio on the web easier. It provides a consistent API for playing audio in different browsers, inclu

CreateJS 4.3k Dec 31, 2022
An open source Javascript framework for detecting the Adobe Flash Player plugin and embedding Flash (swf) files.

— IMPORTANT UPDATE —¶ ↑ SWFObject is no longer in active development. Flash Player is on the decline, and the authors of SWFObject have moved on to ot

null 1.2k Nov 27, 2022
FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.

FileAPI A set of JavaScript tools for working with files. Get started Download the files from the dist directory, and then: <div> <!-- "js-fileapi-

Free and open source software developed at Mail.Ru 3.6k Jan 3, 2023
Multiple file upload plugin with image previews, drag and drop, progress bars. S3 and Azure support, image scaling, form support, chunking, resume, pause, and tons of other features.

Fine Uploader is no longer maintained and the project has been effectively shut down. For more info, see https://github.com/FineUploader/fine-uploader

Fine Uploader 8.2k Jan 2, 2023
Nepali Multi Date Picker for jQuery. Supports both single date selections and multiple date selection.

Nepali Multi Date Picker A simple yet powerful date picker based in Nepali calendar. Supports both single date selections and multiple date selection.

Sanil Shakya 4 May 23, 2022
optimize image & upload file to cloud as image bed with tiny image automic.

Rush! 图片压缩 & 直传图床工具 这是一个兴趣使然的项目, 希望 Rush! 能让这个世界的网络资源浪费减少一点点 下载 Downloads 获取最新发行版 功能 Features 拖拽批量压缩图片, 支持格式 jpg/png/gif Drop to optimize, jpg/png/gif

{ Chao } 3 Nov 12, 2022
OAuth 2 / OpenID Connect Client for Web API runtimes

OAuth 2 / OpenID Connect Client for Web APIs runtime This is a collection of bits and pieces upon which a more streamlined Client module may be writte

Filip Skokan 187 Jan 6, 2023
An enhanced HTML 5 file input for Bootstrap 5.x/4.x./3.x with file preview, multiple selection, and more features.

bootstrap-fileinput An enhanced HTML 5 file input for Bootstrap 5.x, 4.x, and 3.x with file preview for various files, offers multiple selection, resu

Kartik Visweswaran 5.2k Jan 3, 2023
A Javascript library to export svg charts from the DOM and download them as an SVG file, PDF, or raster image (JPEG, PNG) format. Can be done all in client-side.

svg-exportJS An easy-to-use client-side Javascript library to export SVG graphics from web pages and download them as an SVG file, PDF, or raster imag

null 23 Oct 5, 2022
A component built in angular 13 which can generate an signature image in different fonts based on the selection.

AngularSignatureGenerator This project was generated with Angular CLI version 13.2.6. Development server Run ng serve for a dev server. Navigate to ht

Rohith P 4 Apr 26, 2022