zoukankan      html  css  js  c++  java
  • Angular HttpClient upload file with FormData

         从sof上找到一个example:https://stackoverflow.com/questions/46206643/asp-net-core-2-0-and-angular-4-3-file-upload-with-progress,不但上传文件,而且支持多文件:

          模板代码:

    <input #file type="file" multiple (change)="upload(file.files)" />
    <span *ngIf="uploadProgress > 0 && uploadProgress < 100">
        {{uploadProgress}}%
    </span>

           组件代码:

    import { Component } from '@angular/core';
    import { HttpClient, HttpRequest, HttpEventType, HttpResponse } from '@angular/common/http'
    
    @Component({
        selector: 'files',
        templateUrl: './files.component.html',
    })
    export class FilesComponent {
        public uploadProgress: number;
    
        constructor(private http: HttpClient) { }
    
        upload(files) {
            if (files.length === 0)
                return;
    
            const formData = new FormData();
    
            for (let file of files)
                formData.append(file.name, file);
    
            const req = new HttpRequest('POST', `api/files`, formData, {
                reportProgress: true,
            });
    
            this.http.request(req).subscribe(event => {
                if (event.type === HttpEventType.UploadProgress)
                    this.uploadProgress = Math.round(100 * event.loaded / event.total);
                else if (event instanceof HttpResponse)
                    console.log('Files uploaded!');
            });
        }
    }

          单文件上传,改改就行。

          另外那个FormData接口的使用需要IE9兼容填充库:https://angular.cn/guide/browser-support#建议的填充库

  • 相关阅读:
    程序写法
    2011年C++再次给力
    WIN7+LINUX双系统
    随机洗牌算法
    Eclipse快捷键大全
    Android 编程规范
    android Context 上下文的几点解析
    消息模式Toast.makeText的几种常见用法
    Eclipse的优化
    用PULL解析器解析XML文件
  • 原文地址:https://www.cnblogs.com/dhcn/p/7802667.html
Copyright © 2011-2022 走看看