1. 程式人生 > >用FormData上傳檔案

用FormData上傳檔案

不設定undefined  就不會有逗號,但是這個也沒了,所以 問題還是沒有解決。。。
最後在一個ionic交流群了,一個前輩告訴我,用原生的 XMLHttpRequest 提交表單就可以解決問題了
問題解決:
用原生XMLHttpRequest提交表單用的不是ionic封裝的那個http請求,用的是XMLHttpRequest
具體實現程式碼:
save=(val)=>{
        var fd = new FormData();
        fd.append("goodsCheckedInfoId",val.goodsCheckedInfoId);
        fd.append("wxUserId",val.wxUserId);
        fd.append("startSellTime",val.startSellTime);
        fd.append("endSellTime",val.endSellTime);
        fd.append("totalSellNum",val.totalSellNum);
        fd.append("offShelveNum",val.offShelveNum);
        fd.append("offShelveGoodsValue",val.offShelveGoodsValue);
        fd.append("supplier",val.supplier);
        fd.append("lowerDealerNum",val.lowerDealerNum);
        fd.append("remark",val.remark);
        fd.append("fillContacts",val.fillContacts);
        fd.append("fillContactsTelephone",val.fillContactsTelephone);
        // 獲取選中圖片數目
        var imgLen=this.list.length;
        for(var i=0;i<imgLen;i++){
          fd.append("files",this.list[i]);
        }
        // 設定顯示提交載入框
        let postLoading = this.nativeSer.showLoading({content: '載入中...',showBackdrop:false});
        let xhr = new XMLHttpRequest();
        xhr.open('POST', INTERFACES.dealunqualifyWrite.interface, true);
        xhr.onreadystatechange = (res)=>{
            if(xhr.readyState ==4 && xhr.status == 200){
                //上傳成功
                console.log(JSON.parse(xhr.response).hasOk);
                if(JSON.parse(xhr.response).hasOk){
                    postLoading.dismiss();
                    this.nativeSer.showToast({message:'資料提交成功', position:'middle', duration: 1000, cssClass: 'toast-auto'});
                    setTimeout(()=>{
                        this.navCtrl.push('UnqulifyDealListPage');
                    },1000);
            } else {
               postLoading.dismiss();
               this.nativeSer.showToast({message:'資料提交異常,請稍後重試', position:'middle', duration: 1000, cssClass: 'toast-auto'});
        }
      }
    }
    xhr.onerror =(err)=>{
      alert(INTERFACES.dealunqualifyWrite.wrongTip);
      console.log('err====='+JSON.stringify(err));
      // this.nativeSer.showToast({message:'資料提交異常,請稍後重試', position:'middle', duration: 1000, cssClass: 'toast-auto'});
    }
    xhr.send(fd);
}