我可以通过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响应中包含的返回错误消息......
答案 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);
}
}