2016-09-21 18 views
5

複数のファイル(PDFまたはさまざまな画像形式)をアップロードしようとしています。現在、1つのファイルをアップロードすると機能しますが、複数のファイルはアップロードされません。角度2の複数のファイルをアップロード

これはコードです:複数のファイルをアップロードを行うにはどのように私を助けて

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

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> 

スクリプト。

答えて

8

あなたに入力multiple属性を追加します。

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

をそして、あなたの入力内のすべてのファイル名を表示するには、この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 {} 

またはその代わりに、あなたの変数を使用しますそれを直接その入力に置きます!

+0

返信いただきありがとうございます。しかし、まだ1つのファイルを表示しています。 – NNR

+0

表示中、はい。あなたは 'files [0] .name' ..を使っていますが、アップロードしていますか?それは質問だった、そう? :) – mxii

+0

私がしようとしているのは、私はファイルアップロードオプションがあります。どこで1つ以上のファイルをアップロードできますか。 Addボタンをクリックすると、アップロードされたファイル名を送信する必要があります。現在、新しくアップロードされたファイル名のみが表示されます。 – NNR

関連する問題