Carga de archivos angulares

La carga de archivos es un componente esencial para crear un formulario que almacene algún tipo de datos de imagen. Ayuda en las aplicaciones que utilizan la carga de imágenes o en el intercambio de archivos. Este componente de carga de archivos utiliza la API file.io para cargar archivos y, a cambio, proporciona un enlace para compartir. Además, podemos enviar una solicitud de obtención al enlace para compartir para obtener el archivo, pero por ahora, nuestro único enfoque es en la sección de carga, por lo que solo usamos el método de publicación.

Acercarse:

  1. Cree una nueva aplicación angular usando el siguiente comando:
    ng new angular-file-upload 
  2. Muévase dentro de la aplicación usando el comando cd-
    cd src/app/
  3. Generar nuevo archivo de componente-subir-
    ng g c file-upload/ 
  4. Abra la carpeta src/app y comience a editar el archivo app.component.html .

    <app-file-upload></app-file-upload>
  5. Cree un servicio para el componente de carga de archivos a través del comando-
    ng g s file-upload/
  6. Abra la carpeta src/app/file-upload y comience a editar el archivo file-upload.component.ts .

    import { Component, OnInit } from '@angular/core';
    import { FileUploadService } from './file-upload.service';
      
    @Component({
        selector: 'app-file-upload',
        templateUrl: './file-upload.component.html',
        styleUrls: ['./file-upload.component.css']
    })
    export class FileUploadComponent implements OnInit {
      
        // Variable to store shortLink from api response
        shortLink: string = "";
        loading: boolean = false; // Flag variable
        file: File = null; // Variable to store file
      
        // Inject service 
        constructor(private fileUploadService: FileUploadService) { }
      
        ngOnInit(): void {
        }
      
        // On file Select
        onChange(event) {
            this.file = event.target.files[0];
        }
      
        // OnClick of button Upload
        onUpload() {
            this.loading = !this.loading;
            console.log(this.file);
            this.fileUploadService.upload(this.file).subscribe(
                (event: any) => {
                    if (typeof (event) === 'object') {
      
                        // Short link via api response
                        this.shortLink = event.link;
      
                        this.loading = false; // Flag variable 
                    }
                }
            );
        }
    }
  7. Abra src/app/file-upload/ y comience a editar el archivo file-upload.service.ts .

    import { Injectable } from '@angular/core';
    import {HttpClient} from '@angular/common/http';
    import {Observable} from 'rxjs';
    @Injectable({
      providedIn: 'root'
    })
    export class FileUploadService {
        
      // API url
      baseApiUrl = "https://file.io"
        
      constructor(private http:HttpClient) { }
      
      // Returns an observable
      upload(file):Observable<any> {
      
          // Create form data
          const formData = new FormData(); 
            
          // Store form name as "file" with file data
          formData.append("file", file, file.name);
            
          // Make http post request over api
          // with formData as req
          return this.http.post(this.baseApiUrl, formData)
      }
    }
  8. Abra src/app/file-upload y comience a editar el archivo file-upload.component.html .

    <div class="text-center">
        <input class="form-control" type="file" 
                (change)="onChange($event)">
      
        <button (click)="onUpload()" 
            class="btn btn-success">
            Upload
        </button>
    </div>
      
    <!-- Shareable short link of  uoloaded file -->
    <div class="container text-center jumbotron"
        *ngIf="shortLink">
        <h2> Visit Here</h2>
        <a href="{{shortLink}}">{{shortLink}}</a>
    </div>
      
    <!--Flag variable is used here-->
    <div class="container" *ngIf="loading">
        <h3>Loading ...</h3>
    </div>
  9. Abra src/app/ y comience a editar el archivo app.module.ts .

    import { BrowserModule } from 
        '@angular/platform-browser';
    import { NgModule } from '@angular/core';
      
    import { FileUploadComponent } from 
        './file-upload/file-upload.component';
      
    import { AppComponent } from './app.component';
    import {HttpClientModule} from 
        '@angular/common/http';
    @NgModule({
      declarations: [
        AppComponent,
        FileUploadComponent,
      ],
      imports: [
        BrowserModule,
        HttpClientModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
  10. Ahora ejecute este comando para servir en localhost
    ng serve
  11. Producción:

  • Antes de la selección de archivos:
  • Después de seleccionar el archivo y hacer clic en el botón:
  • Una vez finalizada la carga:

HTML es la base de las páginas web, se utiliza para el desarrollo de páginas web mediante la estructuración de sitios web y aplicaciones web. Puede aprender HTML desde cero siguiendo este tutorial de HTML y ejemplos de HTML .

Publicación traducida automáticamente

Artículo escrito por Ritik_Dua y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *