2016-06-08 42 views
0

我正在使用croppie讓用戶裁剪圖像。

Croppie返回base64編碼圖像(在我的理解與編碼圖像數據字符串)。

由於我使用的是Angular 1我想用$http組件轉移這樣的圖像。

這是我的方法:

控制器:

$scope.croppieRun = function() { 
     croppieObject.croppie('result', { 
      type: 'canvas', 
      format: 'png', 
      size: { width: '300', height: '300' } 
     }).then(function (resp) { 
      var imgData = resp.replace(/^data:image\/(png|jpg);base64,/, ""); 

      factory.sendImage(imgData); 

     }); 
    } 

廠:

function sendImage(imgData) { 
    var deferred = $q.defer(); 

    $http({ 
     method: "POST", 
     url: prefix + "/album/photoAdd", 
     headers: { 
      data: imgData 
     } 
    }).then(function (result) { 
     deferred.resolve(result); 
    }, function (error) { 
     deferred.reject(error); 
    } 
    ); 

    return deferred.promise; 
} 

的node.js服務器

router.post('/album/photoAdd', requiresUserAuthentication, multipartyMiddleware, function (req, res) { 
var file = req.files.data; 

我可以看到一些原因,它不工作我自己:

  • 服務器不準備讓這種規模的POST頭,我需要更改一些設置那裏,我寧願沒有這樣做
  • 我想multipart/form-data編碼應採用不base64允許在服務器端

什麼是這個問題的最好辦法multipartyMiddleware使用?

謝謝:-)

回答

0

解決的辦法是張貼圖像數據作爲data在POST不作爲headers

一個