2016-09-21 3 views
5

Ich versuche, mehrere Dateien (PDFs oder verschiedene Bildformate) hochzuladen. Im Moment funktioniert das Hochladen einer einzelnen Datei, aber mehrere nicht.Angular 2 mehrere Dateien hochladen

Dies ist der Code:

HTML:

<div> 
    <label> Upload PDF(s) or Images (PNG/JPG/DICOM/DCM):</label> 
    <div class="ctrl"> 
     <div class="icon"> 
      <i class="fa fa-file-image-o"></i> 
     </div> 
     <input type="file" (change)="onChange($event)"/> 
     <md-input class="ctrl" [(ngModel)]="fileName"></md-input> 
    </div> 
</div> 

Script:

onChange(event: any) { 
    this.fileName = event.srcElement.files[0].name; 
} 

mir Hilfe, wie mehrere Dateien hochladen zu tun.

Antwort

8

Fügen Sie das multiple Attribut Eingabe:

<input type="file" (change)="onChange($event)" multiple /> 

Und alle Dateinamen zu zeigen, in Ihrem Eingang, tun Sie es wie in diesem Plunker: https://plnkr.co/edit/WvkNbwXpAkD14r417cYM?p=preview

import {Component, NgModule} from '@angular/core' 
import {BrowserModule} from '@angular/platform-browser' 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 
     <input type="file" multiple (change)="onChange($event, showFileNames)" /> 
     <input #showFileNames /> 
    </div> 
    `, 
}) 
export class App { 
    constructor() { 
    this.name = 'Angular2' 
    } 

    onChange(event: any, input: any) { 
    let files = [].slice.call(event.target.files); 

    input.value = files.map(f => f.name).join(', '); 
    } 
} 

@NgModule({ 
    imports: [ BrowserModule ], 
    declarations: [ App ], 
    bootstrap: [ App ] 
}) 
export class AppModule {} 

Oder Ihre Variable anstelle von setze es direkt auf diesen Eingang!

+0

Danke für Ihre Antwort. Zeigt aber immer noch eine Datei an. – NNR

+0

Zeige, ja .. Weil du 'files [0] .name' .. verwendest, aber hochlädst? das war die Frage, oder? :) – mxii

+0

Was ich versuche ist, ich habe eine Datei-Upload-Option. Wo kann ich eine oder mehrere Dateien hochladen. Wenn ich auf Hinzufügen klicke, muss ich die Namen der hochgeladenen Dateien senden. Im Moment wird nur der neu hochgeladene Dateiname angezeigt. – NNR