【问题标题】:How to post uploaded files and json data to API in Angular2?如何将上传的文件和 json 数据发布到 Angular2 中的 API?
【发布时间】:2017-06-18 18:45:05
【问题描述】:

所以,我必须将一个(或多个)文件与其他 json 数据一起发送。

从我的搜索来看,我只能单独发送文件或将它们转换为base64,然后将带有base64代码的json发送到API(未确认)。

是否有另一种方法可以发送不将文件转换为 base64 的文件?

我们已经遇到了 base64 和图像的问题,由于 base64 字符串的长度,我们的 GET 需要花费一生的时间才能加载。

编辑:所以,我只是尝试将它作为 base64 发送并且它有效,所以它有效,我只是想避免以这种方式发送它。

【问题讨论】:

标签: json angular file post base64


【解决方案1】:

您需要以这样的形式添加图像数据。

<form (submit)="submit(formData)" #formData="ngForm">
  <div class="form-group">
    <label for="name">Product Name:</label><input type='text' name='name' class="form-control" id="name" ngModel>
  </div>
<div class="form-group">
    <label for="image">Image:</label><input type="file" name='image' class="form-control" id="image" ngModel>
  </div>

<button type="submit" class="btn btn-default">Add</button>
</form> 

组件

submit(formData){
    let inputEl: HTMLInputElement = this.el.nativeElement.querySelector('#image');   
           let fileCount: number = inputEl.files.length;   
            let formData = new FormData();  
            if (fileCount > 0) {
                    formData.append('image', inputEl.files.item(0));
             }

// Now call your service.

    }

这是伪代码,但您可以在表单数据中添加图像并发送到后端。 否则您可以发出两个发布请求,一个用于表单数据,另一个用于图像。

【讨论】:

  • 我是用formGroup建表格的,有什么区别吗?
  • 我认为他们不会有什么不同。你试过 formGroup 吗?
  • 刚刚尝试过,它似乎在请求中发送正确的正文,但是后端是否必须更改任何内容才能接受 formData 数据?我尝试发送它但收到验证错误,好像我什么都没发送一样。
  • 什么是后端问题?
猜你喜欢
  • 1970-01-01
  • 2017-02-03
  • 2016-09-12
  • 2015-08-10
  • 2020-01-29
  • 2018-12-16
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多