Вот демоверсия Stackblitz для удаления файла.
Директива обрабатывает один или несколько файлов, удаляемых одновременно.
Вызывает событие files
со списком файлов в качестве параметра, каждый файл заключен в интерфейс FileHandle
, содержащий файл и SafeUrl для большого двоичного объекта, созданного с помощью window.URL.createObjectURL (файл) .
export interface FileHandle {
file: File,
url: SafeUrl
}
@HostListener('drop', ['$event']) public onDrop(evt: DragEvent) {
evt.preventDefault();
evt.stopPropagation();
this.background = '#eee';
let files: FileHandle[] = [];
for (let i = 0; i < evt.dataTransfer.files.length; i++) {
const file = evt.dataTransfer.files[i];
const url = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));
files.push({ file, url });
}
if (files.length > 0) {
this.files.emit(files);
}
}
Компонент-потребитель может затем отображать список изображений, используя URL, созданный для каждого файла.
<div *ngFor="let file of files">
<img *ngIf="file" [src]="file.url" width="100px" height="100px">
</div>
Надеюсь, это поможет.