Skip to content

Pure JS file upload library with no dependencies.

License

Notifications You must be signed in to change notification settings

svatal/pure-upload

 
 

Repository files navigation

Pure-upload

npm version Bower version

The pure JS (TS) upload library with no dependencies compatible with Google Chrome, Firefox, IE10+, Edge and modern mobile browsers.

Installation

  1. Dowload as a ZIP file directly from GitHub pages and include to your project.
  2. Install with npm by npm install pure-upload --save or yarn add pure-upload.
  3. Install with bower by bower install pure-upload.

Example

See a simple example.

Api

Using NPM package:

Import pure-upload with standard import syntax:

import * as pu from 'pure-upload';

Uploader

Uploader manages upload queue and registers upload areas.

Initialization:

let uploader = pu.getUploader(uploadQueueOptions, uploadQueueCallbacks)

Upload queue options

maxParallelUploads?: number;
parallelBatchOffset?: number;
autoStart?: boolean;
autoRemove?: boolean;

Upload queue callbacks

onProgressCallback?: (file: IUploadFile) => void;
onCancelledCallback?: (file: IUploadFile) => void;
onFinishedCallback?: (file: IUploadFile) => void;
onUploadedCallback?: (file: IUploadFile) => void;
onErrorCallback?: (file: IUploadFile) => void;
onUploadStartedCallback?: (file: IUploadFile) => void;
onFileAddedCallback?: (file: IUploadFile) => void;
onFileRemovedCallback?: (file: IUploadFile) => void;
onAllFinishedCallback?: () => void;
onQueueChangedCallback?: (queue: IUploadFile[]) => void;
onFilesAddedErrorCallback?: (files: IUploadFile[]) => void;

Upload area

Upload area defines element registred in Uploader.

Registration:

let uploadArea = uploader.registerArea(element, uploadAreaOptions);

Unregistration:

uploader.unregisterArea(uploadArea);

Upload area options

url: string;
method: string;
withCredentials?: boolean;
headers?: { [key: string]: string; };
params?: { [key: string]: string; };
localizer?: ILocalizer;
maxFileSize?: number;
allowDragDrop?: boolean | (() => boolean);
clickable?: boolean | (() => boolean);
accept?: string;
multiple?: boolean;
validateExtension?: boolean;
manualStart?: boolean;
onFileAdded?: (file: IUploadFile) => void;
onFileSelected?: (file: IUploadFile) => void;
onFileError?: (file: IUploadFile) => void;
onFileCanceled?: (file: IUploadFile) => void;

Upload area - manual starting

start(autoClear?: boolean): void;
clear(): void;

Localizer

fileSizeInvalid: (maxFileSize: number) => string;
fileTypeInvalid: (accept: string) => string;
invalidResponseFromServer: () => string;

Upload file

Standard File object extended with additional informations and methods to manage a file in queue.

guid: string;
uploadStatus: UploadStatus;
responseCode: number;
responseText: string;
progress: number;
sentBytes: number;
cancel: () => void;
remove: () => void;
start: () => void;

Upload status

File statuses accesible by pu.uploadStatus.

Library used by GMC Software Technology.

npm version

MIT, Copyright © 2015 Tomáš Růt

About

Pure JS file upload library with no dependencies.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 51.3%
  • JavaScript 46.0%
  • CSS 1.5%
  • HTML 1.2%