iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
Modern Web

Angular10 實作教學系列 第 12

NG10鐵人賽 - 12 - 圖片(1) - 顯示

  • 分享至 

  • xImage
  •  

單選圖片顯示

html

<input type="file" (change)="uploadImg($event)">
<img [attr.src]="src" style="width: 300px;">

ts

src = '';

uploadImg(event): void {
const files = (event.target as HTMLInputElement).files;
    if (files && files[0]) {
        const reader = new FileReader();
        reader.onload = (e: any) => {
            this.src = e.target.result;
        };
        reader.readAsDataURL(files[0]);
    }
}

多選圖片顯示

html

<input type="file" multiple (change)="uploadImg($event)">
<ng-container *ngFor="let file of uploadFiles">
    {{file.file.name}}
    <img [attr.src]="file.src" style="width: 300px;">
</ng-container>

ts

uploadFiles: {file: File, src: string}[] = [];

uploadImg(event): void {
    this.uploadFiles = [];
    const files = (event.target as HTMLInputElement).files;

    for (let i = 0; i < files.length; i++) {
        const file = files.item(i);
        if (file) {
            const reader = new FileReader();
            reader.onload = (e: any) => {
                this.uploadFiles.push({
                    file,
                    src: e.target.result
                });
            };
            reader.readAsDataURL(file);
        }
    }
    console.log('upload files', this.uploadFiles);
}

上一篇
NG10鐵人賽 - 11 - 型別實作(3) - enum 和 switch 重疊值顯示相同內容
下一篇
NG10鐵人賽 - 13 - 圖片(2) - 檔案接API
系列文
Angular10 實作教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言