Как узнать количество файлов из HTML-элемента ввода в Angular 8? - PullRequest
0 голосов
/ 07 ноября 2019

На данный момент мой скрипт может обрабатывать только один добавляемый файл:

fileEvent(fileInput: Event){
    this.fileName = (<HTMLInputElement>fileInput.target).files[0].name;
    this.fileSize = Math.round(((<HTMLInputElement>fileInput.target).files[0].size) / 1000);
    this.fileAdded = true;
}

Это HTML:

<input (change)="fileEvent($event)" type="file" name="files" accept=".pcap" style='display: none;' #file>
<div id="filelist" *ngIf="fileAdded">
    <p id="file">{{ fileName }}</p>
    <p id="filesize">{{ fileSize }} KB</p>
</div>

Мне интересно, как я могу получить числофайлы внутри элемента ввода. Я пытаюсь перебрать элементы, чтобы получить их имена и размеры, чтобы я мог отобразить их на своем веб-сайте.

РЕДАКТИРОВАТЬ: По-видимому, я не пробовал самую очевидную вещь, которая добавляет .length вконец. Это решает это.

this.numOfFiles = (<HTMLInputElement>fileInput.target).files.length;

Ответы [ 3 ]

0 голосов
/ 07 ноября 2019

Просто позвоните своему fileInput.target.files.length . Это уже массив файлов.

fileEvent(fileInput: Event){
    this.fileName = (<HTMLInputElement>fileInput.target).files[0].name;
    this.fileSize = Math.round(((<HTMLInputElement>fileInput.target).files[0].size) / 1000);
    this.fileAdded = true;
}

Вам просто нужна эта строка.

const numberOfFiles = fileInput.target.files.length;
0 голосов
/ 07 ноября 2019

Измените ввод, чтобы он мог принимать несколько файлов одновременно, используя атрибут множественный .

<input (change)="fileEvent($event)" type="file" name="files" accept=".pcap" style='display: none;' #file multiple>

В вашем сценарии просто получите длину файлов.

fileEvent(fileInput: Event){
    console.log(fileInput.target.files.length)
}
0 голосов
/ 07 ноября 2019

Вам необходимо использовать атрибут multiple для типа ввода file, например, -

<input multiple (change)="fileEvent($event)" type="file" name="files" accept=".pcap" #file>

Он вернет вам массив файлов, вы получите его, используя -

fileInput.target.files

Для более подробной информации, пожалуйста, см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...