如何在Angular中处理中止的上传?

时间:2017-12-12 16:21:59

标签: angular http

我可以通过POST请求将文件上传到我的后端,当文件太大时会返回Http 400状态代码。使用Postman时效果很好。

当我在浏览器(chrome)中执行此调用时,出现此错误:

  

zone.js:2933 POST http://localhost:8080/backend/rest/upload/ net :: ERR_CONNECTION_ABORTED

结果,我的 HttpErrorResponse的状态代码为0

  

HttpErrorResponse {headers:HttpHeaders,status:0,statusText:“Unknown Error”,url:null,ok:false,...}

This回答解释了这个问题,但是如何在Angular中处理这个问题?我指望我的Http 400响应中包含的返回错误消息......

1 个答案:

答案 0 :(得分:0)

我认为这与您的API相关的问题多于Angular本身...您的API应该处理并返回适当的400错误。

作为一种变通方法,为了改善您的用户界面,您可以在文件之前对其进行角度验证将其发布到后端。如果它太大,那么只需阻止帖子并通知用户。

您可以像这样访问文件的size属性:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <input type="file" (change)="onChange($event)"/>
    </div>
  `,
  providers: [ UploadService ]
})
export class AppComponent {
  onChange(event) {
    var files = event.srcElement.files;
    console.log(files[0].size);
  }
}