当文件输入发生变化时,Angular 2似乎在运行验证时遇到麻烦.
我做了一个插图来说明这个问题:
我创建了一个formGroup
this.frm = new FormGroup({
file: new FormControl("", this.validateFile)
});
Run Code Online (Sandbox Code Playgroud)
在validateFile函数中,我抛出一个警报并记录到控制台:
public validateFile(formControl: FormControl): {[key: string]: any; } {
alert('Validation ran');
console.log('Validation ran');
}
Run Code Online (Sandbox Code Playgroud)
Plunkr来说明问题:https://plnkr.co/edit/Pgcg4IkejgaH5YgbY3Ar?p = preview
验证将在初始化页面时运行,但每次更改要上载的文件时都不会运行.
有没有解决这个问题的方法?
我有一个图像(base64),我需要通过POST请求发送(并等待响应).POST请求必须是Content-Type:multipart/form-data.图像需要是Content-Type: image/jpg
POST请求应如下所示:
POST https://www.url... HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
User-Agent: Fiddler
Host: www.host.com
Content-Length: 199640
---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="Nikon Digital SLR Camera D3100 14.2MP 2.jpg"
Content-Type: image/jpeg
Run Code Online (Sandbox Code Playgroud)
用二进制图像数据作为内容体.
我正在尝试使用角度2的Http Post方法,但我不太确定如何生成请求.这就是我所拥有的:
let body = atob(imageData);
let headers = new Headers({'Content-Type': 'multipart/form-data'});
let options = new RequestOptions({headers: headers});
this._http.post(url, body, options)
.map(res=>{
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
我可以说我错过了它的一部分,但我不知道我需要做什么来给二进制图像数据它的内容 - 处置和类型等.