需要使用角度的mat表单字段上传文件

Posted

技术标签:

【中文标题】需要使用角度的mat表单字段上传文件【英文标题】:Need to upload file using mat form field in angular 【发布时间】:2022-01-05 08:52:06 【问题描述】:

需要使用 mat-form-field 上传文件并使用 web API dot net core 保存到数据库。目前我正在使用 mat-form-field 将其他数据保存到数据库。现在我正在尝试使用 mat-form-field 上传文件(图像)并需要将其发送到 Web API 控制器。有什么方法吗?

【问题讨论】:

【参考方案1】:
//In the .html U.I You would accept the file like so

<input type="file" (change)="fileChange($event)" placeholder="Upload file" accept=".pdf,.doc,.docx">

//Then in the .ts backend 

fileChange(event) 
    let fileList: FileList = event.target.files;
    if(fileList.length > 0) 
        let file: File = fileList[0];
        let formData:FormData = new FormData();
        formData.append('uploadFile', file, file.name);
        let headers = new Headers();
        headers.append('Content-Type', 'multipart/form-data');
        headers.append('Accept', 'application/json');
        let options = new RequestOptions( headers: headers );
        this.http.post(`$this.apiEndPoint`, formData, options)
            .map(res => res.json())
            .catch(error => Observable.throw(error))
            .subscribe(
                data => console.log('success'),
                error => console.log(error)
            )
    



这是一个示例,您可以将输入放入 Mat 字段表单中,

然后,一旦您从用户那里获得了文件,您就可以将其映射到后端,并将 http 回调到 API

【讨论】:

以上是关于需要使用角度的mat表单字段上传文件的主要内容,如果未能解决你的问题,请参考以下文章

文件上传角度 - spring boot - mysql

如何在节点js中使用单个api保存文本字段值以及文件上传?

MVC:如何将文件上传和其他表单字段发布到一个操作

文件上传

[C#]使用WebClient上传文件并同时Post表单数据字段到服务端

使用 dropzone 和使用 FormValidation 插件的其他表单字段上传多个文件