iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
Modern Web

Angular10 實作教學系列 第 13

NG10鐵人賽 - 13 - 圖片(2) - 檔案接API

利用昨天學到的檔案上傳將檔案傳到 Service 處理

component.ts

constructor(
    private materialService: MaterialService,
) { }

/**
    * 新增圖片
    * @param name
    * @param file
*/
createImg(name: string, files: File[]) {
    this.materialService.createImg(name, files).subscribe();
}

在有檔案上傳的狀況會採用 FormData 物件當作 body

material.service.ts

/**
    * 上傳圖片
    * @param name
    * @param files
*/
createImg(name: string, files: File[]) {

    let formData = new FormData();
    formData.set('name',name);

    for (let i = 0; i < files.length; i++) {
        formData.set(`file${i}`, files[i]);
    }

    return this.apiService.postEvent('/xxxyyy', formData);
}

HttpClient 介紹可以參考我之前寫過的文章

https://ithelp.ithome.com.tw/articles/10208818

reportProgress:是否需要建立一個持續保持的通道

api.service.ts

/**
    * Post Api Event
    * @param path
    * @param body
    * @param header
*/
postEvent(path: string, body: FormData, header: HttpHeaders = new HttpHeaders()): Observable<HttpEvent<Object>> {
    return this.http.post(`https://abcdefg${path}`, body, { headers: header, observe: 'events', reportProgress: true });
}

上一篇
NG10鐵人賽 - 12 - 圖片(1) - 顯示
下一篇
NG10鐵人賽 - 14 - 資料傳遞處理 - @Input 傳入資料要改寫或做變化處理
系列文
Angular10 實作教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言