2017-08-01 44 views
0

提交我有一些PARAM和圖像的形式, 的HTML代碼是Ionic3形式與圖像

<form [formGroup]="registerForm" (submit)="doRegister()"> 
     <img name="userImg" (tap)="openGallery()" [hidden]="!imgSelected" [src]="imageSrc" style="width:60px; height:60px;"/> 
     <br/> 
     <ion-item style="border:1px solid #CCCCCC; border-radius:0px;"> 
      <ion-input [(ngModel)]="registerData.email" name="email" type="text" formControlName="email" placeholder="{{ 'Login.email' | translate }}"></ion-input> 
     </ion-item> 
     <ion-item style="border:1px solid #CCCCCC; border-radius:0px;"> 
      <ion-input [(ngModel)]="registerData.password" name="password" type="text" formControlName="password" placeholder="{{ 'Login.password' | translate }}"></ion-input> 
     </ion-item> 
    </form> 

和我通話API代碼:

let opt: RequestOptions; 
let myHeaders: Headers = new Headers; 

myHeaders.set('Accept', 'application/json; charset=utf-8'); 
myHeaders.append('Content-type', 'application/json; charset=utf-8'); 
opt = new RequestOptions({ 
    headers: myHeaders 
}) 
return new Promise((resolve, reject) => { 
console.log(apiUrl); 
this.http.post(apiUrl+'register?email='+email+'&password='+password+'&userImg='+userImg, opt) 
.map(res => res.json()) 
.subscribe(data => { 
    this.data = data; 
    resolve(this.data); 
},(err) => { 
reject(err); 
}); 
}); 

我想問怎麼才能我發送圖像與api到服務器,非常感謝〜

回答

0

我認爲最簡單的方法是將圖像作爲base64編碼字符串 - DestinationType.DATA_URL發送到您的服務器。下面是我寫給表單數據發送給服務器,包括圖像,作爲JSON在郵件正文中的方法的一個示例:

public sendForm(form: any): Observable<any> { 
let body = JSON.stringify(form) 
let params = new URLSearchParams(); 
let options = new RequestOptions({ headers: this.HEADERS, search: params }); 
return this.http.post(this.URL, body, options) 
    .map(res => res.json()) 
    .catch(this.handleError) 
    .timeout(this.TIMEOUT); 

}