Upload cordova via ajax

Como subir una imagen desde cordova via ajax

/**
 * Función para pasar una imagen formato url a BLOB (objeto)
 * @param {string} pathImage
 */
var loadImage = function(pathImage) {
    return new Promise(function(resolve, reject) {
        var xhr = new XMLHttpRequest();
        xhr.open("GET", pathImage, true);
        xhr.responseType = "blob";
        xhr.onload = function (e) {
            // console.log(this.response);
            // var reader = new FileReader();
            // reader.onload = function(event) {
            //     var res = event.target.result;
            //     // console.log(res)
            // };
            // var file = this.response;
            // reader.readAsDataURL(file);
            resolve(this.response);
        };
        xhr.send();
    });
};
$('.take-foto').on('click',function(){
  var options = {
    encodingType:       0,
    quality:            60,
    destinationType:    Camera.DestinationType.FILE_URI,
    correctOrientation: true,
    targetWidth:        4000,
    targetHeight:       3000
  };

  navigator.camera.getPicture(savePicture, onFailCamara, options);
})

Como utilizar la función

function savePicture (imageURI){
// Si queremos mostrar la imagen
var img = $('<div class="image"><img src="'+imageURI+'"></div>'); 

  loadImage(imageURI).then(function(imageBlob){
    var dataSend = new FormData();
    dataSend.append("upload",1);
    dataSend.append("photo", imageBlob);

    $.ajax({
      method: "POST",
      cache: false,
      contentType: false,
      processData: false,
      url: _url_,
      data: dataSend,

    })
    .done(function(data) {
      console.log(data);
    })
    .fail(function( jqxhr, textStatus, error ) {
      console.log(error)
    });
  },function(){
    console.log('error');
  });
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Captcha cargando...