我的问题如下。
我已经提供了WEB API,我必须添加电路板图片。
我需要做什么?
WEB API详细信息
标题
数据
我已经使用 cordovaImagePicker 插件来选择图片,然后我无法将其上传到服务器。
我可以使用cordova文件传输插件,但我认为在这种情况下无法帮助我,因为没有指定的地方来存储图像。所有文件管理都是由WEB API完成的,我们只需要发布带有数据的文件。
答案 0 :(得分:3)
我可以建议一件简单的事情,
使用input [" file"]标签选择图像。您将获得文件对象和临时URL。使用此网址,您可以在表单中显示图像。
然后使用formData附加图像和其他字段。
e.g。
var fd = new FormData();
fd.append('board_background', $scope.image, $scope.image.name);
fd.append('board_id', 321);
fd.append('board_title', 'Dummy title');
var xhr = new XMLHttpRequest();
xhr.open('PUT', YOUR_URL, true);
xhr.onload(function(res){
// Write your callback here.
});
// Send the Data.
xhr.send(fd);
希望它能帮助您并满足您的要求。
答案 1 :(得分:3)
以下链接肯定会对您有所帮助:
http://ionicmobile.blogspot.in/2015/10/jquery-file-upload.html
如果需要,进行适当的更改。任何帮助都让我知道......
答案 2 :(得分:3)
首先需要从设备中选择图像。
vm.getImages = function () {
var options = {
quality: 70,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
allowEdit: true,
correctOrientation:true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 300,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: true
};
navigator.camera.getPicture(onSuccess, onFail, options);
function onSuccess(imageURI) {
vm.image = "data:image/jpeg;base64," + imageURI;
vm.imageURI = imageURI;
}
function onFail(message) {
console.log('Failed because: ' + message);
}
};
如果需要,您可以更改输入的源类型。
sourceType: Camera.PictureSourceType.CAMERA,
成功后,您可以直接使用ImageURI或将其转换为base64,如下所述进行上传。
vm.image = "data:image/jpeg;base64," + imageURI;
在此之后,您可以使用FileTransfer plugin上传文件并同时跟踪进度。
cordovaFileTransfer.upload()
.then(function (result) {},
function (err) {},
function (progress) {});