2014-11-25 60 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

相关问题