Skip to content

Progress.up HTML5 multiple files upload progress indicator with image preview

License

Notifications You must be signed in to change notification settings

girish1729/progress-up

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Progress-up - File Uploader for HTTPS

Progess-up

What is this?

Progress-up is a HTTPS multiple files Upload plugin with progress bar indicator.

There is support for 10 types of progress displays.

Progess-up progress types

Plugins for Angular, Svelte, Vue and React

This uses the HTTP File API to show continuous progress.

This is the very first attempt to create a clean no frills upload plugin in 100% Typescript. Now available for Angular, Vue, Svelte and React.

Uses the HTML input file for file uploads.

Canonical home page

Demo

Live demo

Other demos are here

Configuration

There are two types of configuration in Progress-up.

  • Static config.json with one time values
  • Dynamic config with runtime form filling

A sample static config is config.json inside the root directory of proect.

{
         "uploadURL": "https://localhost:2324/uploadmultiple",
         "filesName": "uploadFiles",
         "progressType": "Line"
}
  

You can choose one of 10 progress types.

  • Line
  • Fan
  • Bubble
  • Energy
  • Rainbow
  • Stripe
  • Text
  • Circle

How to build and run as plain js

The backend is CORS enabled.

So you don't have to deal with pesky same origin security errors with file uploads. Also each plugin enables you to name the file array in the HTML <input> file selector.

By specifying backend URL and file name in input HTML element file upload is no longer a hassle.

With that out of the way let us focus on the frontend.

$ git clone https://github.com/girish1729/progress.up

$ cd progress.up/backend
$ yarn install

# or

$ npm install

$ mkdir uploads

$ npm start

You also need live-server.

# npm install -g live-server

Go to https://localhost:2324

and try uploading files.

You may use manual upload.

The uploaded files are present in backend/uploads folder.

Backend

This backend is Node.js HTTP server express.js with multer middleware

This ensures that this code is platform agnostic. Most issues with file upload plugins extant today hover around not specifying backend correctly. Not making it easy to use. Not explaining what should be the input file name attribute etc.

We require a backend that accepts multipart/form-data as upload protocol.

Also the name of the <input type='file attribute should myFiles.

Frontend - the plugin itself

It is using the HTML5 File API.

This is a clean way to get progress indicator for file uploads.

Instructions for Angular, Vue, Svelte and React

	$ npm install progress-up-angular
# or 
	$ yarn add progress-up-angular

Vue 3

	$ npm install progress-up-vue
# or 
	$ yarn add progress-up-vue

React.js

	$ npm install progress-up-react
# or 
	$ yarn add progress-up-react

Svelte

	$ npm install progress-up-svelte
# or 
	$ yarn add progress-up-svelte

Detailed instructions

Screenshots gallery

Some are here. For complete list go here

Video of drag and drop

Video of Drag and drop

Video of upload

Video of upload

Dark mode

Dark mode

Preview before upload

Preview

Fully uploaded view

Fully uploaded

Why should you care?

If you allow multiple large files upload then a progress indicator is a cool way to give user feedback.

Nowadays HTML5 File API based progress is the best way to achieve your goal.

There is support for blocking uploads based on total size, individual size and MIME type.

Screencast of upload

Progess.up screencast

Resources for file upload

Testimonials

Testimonial from Staylight

Collaboration

If you wish to collaborate or send pull requests please get in touch using my Github profile.

If you cannot write code, then buying me a coffee can work as well.

Alternatives

Contact

You can DM me on Twitter for help/suggestions.

You can follow me for updates.

Tweet this to followers

Tweet this

Buy me a coffee to accelerate development

Buy Me A Coffee

About

Progress.up HTML5 multiple files upload progress indicator with image preview

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published