2014-11-25 27 views
0

我使用的是mean.io,我創建了一個類似於文章的新包。在它中我創建一個圖像(使用canvas.toDataURL()),現在想將它發送回服務器,但有問題;有人可以請指教?使用平均堆棧,您如何將圖像發送回服務器?

更具體地說,是我迄今所做的是如下:

在newpackages /公/控制器/ newpackages.js //創建圖像後,我將它傳遞給sendImgToServer()方法

'use strict'; 

angular.module('mean.newpackages').controller('NewpackagesController', ['$scope','$http',..., 
function($scope, $stateParams, $http, ... Newpackages){ 

... 

$scope.sendImgToServer = function(image){ 
    console.log(image); //data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAARwCAYAAAB… 
    var postURL = '/newpackages/saveImg'; 
    var fd = new FormData(); 
    fd.append("image", image); 

    $http.post(postURL, fd,{ 
     headers:{'Content-Type':undefined}, 
     transformRequest:angular.identity 
    }) 
    .success(function(){ 
    }) 
    .error(function(){ 
    }); 
}; 

在newpackages /公共/路線/ newpackages.js

... 

$stateProvider 
    ... 
    .state('save newpackage image', { 
    url:'/newpackages/saveImg', 
    resolve:{ 
     loggedin:checkLoggedin 
    } 
    }); 
} 

在newpackages /服務器/控制器/ newpackages.js

... 

exports.saveImg = function(req, res){ 
    console.log('save img'); 
}; 

最後,在newpackages /服務器/路由/ newpackages.js

... 

app.route('/newpackages/:fd') 
    .post(newpackages.saveImage); 

... 

在控制檯,我收到錯誤消息是:

TypeError: undefined is not a function 
    at Scope.$scope.sendImgToServer 

預先感謝您。

回答

0

您得到的錯誤是因爲您將您的內容類型頭設置爲未定義在sendImgToServer方法中。

headers:{'Content-Type':undefined} 

設置適當的首部,例如:

headers:{'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'} 
+0

感謝您的響應,IH8。我試圖將標題值更改爲您的建議,但無濟於事。我實際上是參考了以下鏈接:https://groups.google.com/forum/#!topic/angular/MBf8qvBpuVE和http://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs – 2014-11-25 06:07:21

+0

而你還是會得到同樣的錯誤? – iH8 2014-11-25 08:33:12

+0

是的,仍然有相同的錯誤。實際上,我對平均堆棧/ mean.io並不瞭解,如果您使用cli(平均值包)正確創建程序包,它將提供有關如何設置服務器路由的示例。讓我嘗試一下,看看我是否可以將圖像發送到服務器,然後我會回報(只是爲了排除bk端的問題)。 – 2014-11-25 19:27:41

相關問題