2016-09-21 23 views
5

Tôi đang cố gắng tải lên nhiều tệp (PDF hoặc các định dạng hình ảnh khác nhau). Hiện tại, việc tải lên một tệp có tác dụng, nhưng nhiều tệp thì không.Góc 2 tải lên nhiều tệp

Đây là mã:

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; 
} 

giúp tôi làm thế nào để làm nhiều file tải lên.

Trả lời

8

Thêm thuộc tính multiple để bạn nhập vào:

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

Và để hiển thị tất cả các tên tập tin trong đầu vào của bạn, làm điều đó như thế nào trong plunker này: 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 {} 

Hoặc sử dụng biến của bạn thay vì đưa nó trực tiếp vào đầu vào đó!

+0

Cám ơn trả lời. Nhưng vẫn hiển thị một tập tin. – NNR

+0

Đang hiển thị, vâng .. Vì bạn đang sử dụng 'tệp [0] .name' .. nhưng đang tải lên? đó là câu hỏi, phải không? :) – mxii

+0

Điều tôi đang cố gắng là tôi có tùy chọn tải lên tệp. Tôi có thể tải lên một hoặc nhiều tệp ở đâu. Khi tôi nhấp vào nút Thêm, nó phải gửi tên tệp đã tải lên đó. Ngay bây giờ chỉ có tên tệp mới được tải lên đang hiển thị. – NNR