Загрузить изображение из приложения, созданного с помощью Monaca и PhoneGap

У меня есть этот код, который я использую для отправки данных формы на веб-сервер. Работает отлично.

$('form').submit(function(){
            //var landmarkID = $(this).parent().attr('data-landmark-id');
            var postData = $(this).serialize();

            // +'&lid='+landmarkID
            $.ajax({
                type: 'POST',
                data: postData,
                url: 'http://cykel.donslund.net/save_bicycle.php',
                success: function(data){
                    console.log(data);
                    alert('Your comment was successfully added');
                },
                error: function(){
                    console.log(data);
                    alert('There was an error adding your comment');
                }
            });
            return false;
        });

В моем приложении я тоже фотографирую. Как отправить это изображение на сервер вместе с данными формы?


person Jeppe Donslund    schedule 27.03.2015    source источник


Ответы (1)


Я сделал то же самое вчера. У меня есть функция для выбора фото. Я даю вам угловой код и файл php.

$scope.selectPicture = function() { // select picture action
  var cameraOptions = {
    quality: 50,
    sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
    destinationType: Camera.DestinationType.FILE_URI,
    targetWidth: 400,
    targetHeight: 400,
    allowEdit: true
  };
  var success = function(data) {
    $scope.$apply(function() {

      $scope.picData = data;
      var fileURL = data;
      var options = new FileUploadOptions();
      options.fileKey = "file";
      options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
      options.mimeType = "image/jpeg";
      options.chunkedMode = true;

      var params = {};
      params.id = numeroData.get();

      options.params = params;


      var ft = new FileTransfer();
      ft.upload(fileURL, encodeURI("http://www.example.net/upload.php?key=" + idData.get()), viewUploadedPictures, function(error) {
        alert('erreur');
      });

      function viewUploadedPictures() {

      }


    });
  };
  var failure = function(message) {
    alert('Failed because: ' + message);
  };

  navigator.camera.getPicture(success, failure, cameraOptions);
};

<?php
header('Access-Control-Allow-Origin: *'); 
if(isset($_GET['key'])){
    move_uploaded_file($_FILES["file"]["tmp_name"], "img/".$_GET['key'].".jpg");
}
?>
person Matthieu    schedule 17.07.2015