我需要将后台多图像和一些数据发送到服务器。
我在我的Android应用程序中使用ionicframework(带有angularjs)。 我正在使用angular-file-upload(directive),以下代码是我的工厂:
if(angular.isArray(arrPictures) && arrPictures.length > 0) {
var files = [];
for(var i=0; i<arrPictures.length; i++) {
files.push(arrPictures[i].photo); //it is like file://my_path/myImage.jpg
}
$upload.upload({
url: API_POST_ANSWER,
method: 'POST',
data: {
"idSurvey": idSurvey,
"idOAM": idOAM,
"idOPM": idOPM,
"score": score,
"date": date,
"answerJson": answersJson,
"address": address,
"latitude": latitude,
"longitude": longitude
},
file: files,
fileFormDataName: "pictures"
}).progress(function (evt) {
//progress
alert('progress: ' + parseInt(100.0 * evt.loaded / evt.total) + '% file :'+ evt.config.file.name);
}).success(function (data, status, headers, config) {
// file is uploaded successfully
alert('file ' + config.file.name + 'is uploaded successfully. Response: ' + data);
}).error(function (ex) {
//error
alert("error");
alert(ex);
});
}
现在我遇到了问题,因为服务器获取字符串(路径字符串)而不是文件 我的问题是“如何将我的路径字符串转换为文件对象以将其当前发送到服务器?”
答案 0 :(得分:0)
我的解决方案是将图像转换为base64并将其存储到本地db(使用sqllite)。 之后,当我想发送图像时:我查询我的数据库,我得到base64字符串并将其发送到我的休息服务。
所有这些解决方案都使用$ upload指令而不是$ http服务。