将图片上传到服务器angularjs

时间:2015-05-07 13:05:11

标签: angularjs ionic-framework

我需要将从移动设备上拍摄的图像上传到我的服务器。我发现了角度上传库,可供参考。我需要做的是转换图像库64,通过邮件发送到我的服务器,因为服务器是我将与她合作的地方。另一方面,从我的服务器发送并从应用程序中运行它。

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) {

});

2 个答案:

答案 0 :(得分:2)

离子文件传输

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

Base64编码

不知道您的图像存储在何处以及如何检索图像,但是,您要么指定图像是base64编码到HTML文件分隔符中 要么 您可以使用画布转换图像 有关详细信息,请参阅该帖子: https://stackoverflow.com/a/20285053/3687474

答案 1 :(得分:2)

您尚未指定您真正需要的内容: 这里有工厂

//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()方法来处理promise响应。