angularjs
  • xmlhttprequest
  • form-data
  • 2016-09-27 110 views 0 likes 
    0

    在我的項目中,我試圖在成功上載文件後將文件發送到服務器。這是我的代碼請檢查。

    fdata = new FormData(); 
    fdata.append("file", file); 
    
    $http.post('/UserQuestionnaire/AddQuestionnaire?Name=' + questionDetails.questionName + '&Description=' + questionDetails.questionDescription, fdata, 
         { 
                headers: { 
                'Content-Type': false, 
                'SessionID':$rootScope.token 
                } 
               }).then(function(success){ 
                console.log("success question uploaded" + success); 
               },function(error){ 
                console.log("error"+error); 
               }); 
    

    所有的數據都與查詢字符串值一起出現,但文件沒有進入服務器。

    +0

    試着在服務器端獲得$ _FILES。 –

    +0

    您是否收到任何錯誤? –

    +0

    文件不會僅限於服務器。這段代碼是正確的嗎? – Kishan

    回答

    0

    IMO,發送查詢字符串中的數據不是一個好習慣。

    對於文件,你可以這樣做。

    var fd = new FormData(); 
    var imgBlob = dataURItoBlob($scope.uploadme); 
    fd.append('file', imgBlob); 
    
    
    $http({ 
        url: '/UserQuestionnaire/AddQuestionnaire', 
        method: 'POST', 
        data: params 
    
    }); 
    

    使用頁眉爲,

    headers: { 
        'Content-Type': 'multipart/form-data' 
    }, 
    
    +0

    它的設計就像那樣。是否有任何額外的東西需要寫在標題或任何地方? – Kishan

    +0

    我正在嘗試發送擴展名爲「.opgs」的文件。在這種情況下,我將如何發送? – Kishan

    +0

    你可以提供你的jsfiddle或任何你在控制檯中得到的錯誤嗎? –

    0

    我得到了這個答案在我的方式。以下是更新的代碼。

    { 
    transformRequest: angular.identity, 
    headers: { 
          'Content-Type': undefined, 
          'SessionID':$rootScope.token 
         } 
    } 
    

    這是參考鏈接。看看這個Multipart/form-data File Upload with AngularJS

    相關問題