File

src/app/component/file-upload/file-upload.service.ts

Index

Properties
Methods

Constructor

constructor(sanitizer: DomSanitizer, http: HttpClient)
Parameters :
Name Type Optional
sanitizer DomSanitizer No
http HttpClient No

Methods

Private createDataURL
createDataURL(file)
Parameters :
Name Optional
file No
Returns : void
Private createURL
createURL(file: any)
Parameters :
Name Type Optional
file any No
Returns : SafeUrl
isImage
isImage(file: File)
Parameters :
Name Type Optional
file File No
Returns : boolean
startUpload
startUpload(event)
Parameters :
Name Optional
event No
Returns : void
upload
upload(file)
Parameters :
Name Optional
file No
Returns : void

Properties

accept
action
Type : string
Default value : ''
files
maxSize
previewUrl
Type : SafeUrl
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';

import { Upload } from './file-upload.model';

@Injectable()
export class FileUploadService {
  files;
  accept;
  maxSize;
  previewUrl: SafeUrl;
  action: string = '';

  constructor(private sanitizer: DomSanitizer, private http: HttpClient) {}

  startUpload(event) {
    const files = event.dataTransfer
      ? event.dataTransfer.files
      : event.target.files;

    for (const file of files) {
      if (this.isImage(file)) {
        this.previewUrl = this.createURL(file);
      }

      this.upload(file);
    }
  }

  upload(file) {
    const url = this.action;
    const formData = new FormData();
    formData.append(file.name, file, file.name);
    this.http.post(url, formData);
  }

  isImage(file: File): boolean {
    return /^image\//.test(file.type);
  }

  private createURL(file: any): SafeUrl {
    const url = window.URL.createObjectURL(file);
    return this.sanitizer.bypassSecurityTrustUrl(url);
  }

  private createDataURL(file) {
    const fr = new FileReader();
    fr.readAsDataURL(file);
  }
}

result-matching ""

    No results matching ""