1.1.99 • Published 5 years ago

ang4-image-upload v1.1.99

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

Angular File Upload Module

Introduction

An angular module for file uploads. Works great with images.

Currently Tested on Angular 4, Compatibility will be updated soon for other versions.

NO LONGER BEING MAINTAINED! I CHANGED THE PACKAGE NAME TO angular-upload-files

How To Use

Installation:

npm i angular-upload-files

Usage:

App Module Setup:

import {UploaderModule} from 'angular-upload-files'; 
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
    FormsModule,
    UploaderModule.forRoot(), // <---------------
    HttpClientModule,
    RouterModule.forRoot(Routes) 
  ],
  providers: [
  ],
  bootstrap: [AppComponent],
}) 

In your component:

import { UploadService, UploadParams } from 'angular-upload-files';

constructor(private uploadService : UploadService) { }

Interfaces:

export interface UploadParams {
  formDataPropertyName: string;
  extraParams : ExtraParams[];
}
export interface ExtraParams {
  paramValueIsFromFile: boolean;
  paramName: string;
  paramValue: any;
}

You must input a UploadParams object into each instance of the uploader: formDataPropertyName: string; The uploader will automatically append a FormData object with the file and file name attached, as well as the formDataPropertyName (this is how it looks internally):

formData.append(this.uploadParams.formDataPropertyName, file, file.name);

Extra Params:

Extra Params is for passing query string parameters to your request:

example:

    this.uploadParams = {formDataPropertyName: 'image', extraParams: {
      paramValueIsFromFile: true, //paramValue will be accessed as file[paramValue] set false for value to be just paramValue
      paramValue: "name",
      paramName: "filename"
    }}
    this.uploadParams = {formDataPropertyName: 'image', extraParams: {
      paramValueIsFromFile: false, //paramValue will be accessed as paramValue (params.set(paramName, paramValue))
      paramValue: "name",
      paramName: "filename"
    }}

Inputs:

InputDescription
uploadParams: UploadParamsSee UploadParams description above.
buttonText: stringSet upload button text.
buttonClass: stringSet class value. like: "btn btn-primary"
id: numberSet uploader id
postUrl: stringUploader target url
usingImages: booleanSet to true if images (and only images) are being uploaded.
showImagesOnAdd: booleanIf usingImages is set to true, images will show in the DOM on add
imageWidth: stringCSS width value. like: "180px"
imagesRemovable: booleanImages will be removed on click

###Events:

EventDescription
(onFilesSelected)event containing {files: files} OR {files: files, base64s: base64ImgUrls} based on 'usingImages'
(onUploadComplete)Event fired on each upload completion containing {response: event, file: file}
(onImageRemoved)Event fired when when you remove an image (usingIMages mode)
(onFileRemoved)Event fired when when you remove a file

###Triggering events from your component:

EventDescription
Start Uploadthis.uploadService.startUpload.next(files)
Remove Imagethis.uploadService.removeImage.next({id: componentId, index: file/image index})
Remove Filethis.uploadService.removeFile.next({id: componentId, index: file index})
Clear Filesthis.uploadService.clearFiles.next({id: componentId})

###Upload Progress:

this.uploadService.currentUploadProgress.subscribe(
    (progress)=>{
        console.log(progress);
    }
)

#DEMO

Detailed Example and Demo coming soon.

1.1.99

5 years ago

1.2.0

5 years ago

1.1.22

5 years ago

1.1.2

5 years ago

1.0.26

5 years ago

1.0.25

5 years ago

1.0.24

5 years ago

1.0.23

5 years ago

1.0.22

5 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago