将图片上传到服务器 angularjs

Upload image to server angularjs

我需要将从我的移动设备拍摄的图像上传到我的服务器。我找到了参考的 angular-upload 库。我需要做的是将图像 base 64 转换,通过 post 将其发送到我的服务器,因为服务器是我将与她一起工作的地方。另一个,从我的服务器发送并从应用程序处理它到 运行。

var server = URL_BASE+'addView/';

var trustAllHosts = true;

var ftOptions = new FileUploadOptions();
ftOptions.fileKey = 'file';
ftOptions.fileName = $scope.imagen.substr($scope.imagen.lastIndexOf('/') + 1);
ftOptions.mimeType = 'image/jpeg';
ftOptions.httpMethod = 'POST';

console.log(ftOptions);

$cordovaFileTransfer.upload(encodeURI(server), $scope.imagen, ftOptions, trustAllHosts)
.then(function(result) {
  console.log(result)
}, function(err) {
  // Error
  console.log(err);
}, function (progress) {

});

离子文件传输

我个人使用 Cordova file transfer 从服务器上传和下载内容。

Base64编码

不知道你的图像存储在哪里以及你如何检索它,但是,要么你指定图像是 base64 编码到 HTML 文件分隔符 要么 您使用 canvas 转换图像 有关详细信息,请参阅 post:

您还没有说明您真正需要什么: 这里有你的工厂

//Factory you register on your module
angular
    .module('myApp')
    .factory('sendBase64Image', sendBase64Image)

function sendBase64Image($http) {
    var urlBase; //url to be filled in

    var base64 = {};
    base64.sendBase = function (baseImg) {
        var request = $http({
            method: "post",
            url: urlBase,
            headers: {
                'Content-type': 'application/json'
            },
            data : baseImg 
        });
    }
    return base64;
}

然后您应该通过依赖注入将它注入您的控制器并执行对服务器的调用。 如果您想对响应做一些事情,请使用 success() 方法来处理承诺响应。