我需要将从移动设备上拍摄的图像上传到我的服务器。我发现了角度上传库,可供参考。我需要做的是转换图像库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) {
});
答案 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响应。