2015-04-21 2 views
1

Я хочу сохранить изображение в виде блоба в моей базе данных (MySQL) при использовании службы PHP Rest, но я не знаю, как это сделать. Вот мой PHP код (я использую Стройные рамки для PHP)Проводка данных с помощью AngularJS, PHP и MySQL

function addProblem() { 
global $app; 
$postdata = file_get_contents("php://input"); 
$req = json_decode($postdata); // Getting parameter with names 
$paramName = $req->station; // Getting parameter with names 
$paramAdres = $req->address; // Getting parameter with names 
$paramCity = $req->city;// Getting parameter with names 
$parampostal = $req->postalcode; 
$parampic = $req->pictureOfDamage; 
$paramdescrip= $req->description; 
$sql = "INSERT INTO problems (Station,Address,Postalcode,City,PictureOfDamage,Description) VALUES (:station,:address,:postalcode,:city,:pictureOfDamage,:description)"; 
try { 
    $dbCon = getConnection(); 
    $stmt = $dbCon->prepare($sql); 
    $stmt->bindParam(':station', $paramName); 
    $stmt->bindParam(':address', $paramAdres); 
    $stmt->bindParam(':city', $paramCity); 
    $stmt->bindParam(':postalcode', $parampostal); 
    $stmt->bindParam(':pictureOfDamage', $parampic); 
    $stmt->bindParam(':description', $paramdescrip); 
    $stmt->execute(); 
    $dbCon = null; 
    echo json_encode("toegevoegd "); 

} catch(PDOException $e) { 
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 

} 

}

и это мой угловой код (я использую fileuploader прямо сейчас.)

 .controller('MeldingController', function ($scope, $upload, $rootScope, $state, $http) { 
     $scope.station = $rootScope.station; 
     $scope.PictureOfDamage; 
     $scope.upload = function (files) { 
      if (files && files.length) { 
       for (var i = 0; i < files.length; i++) { 
        var pictureOfDamage = files[i]; 
        return pictureOfDamage; 
       } 
      } 
     } 
     $scope.submit = function() { 
      console.log($scope.PictureOfDamage); 
      var data = { 
       station: $scope.station.name, 
       address: $scope.station.streetName, 
       postalcode: $scope.station.postalCode, 
       city: $scope.station.city, 
       pictureOfDamage: $scope.upload($scope.files) /* picture*/, 
       description: document.getElementById("Description").value 
      } 
      console.log('NOJSN ', data); 
      data = JSON.stringify(data); 
      console.log('JSON', data) 
      $http({ 
       method: "POST", 
       url: 'http://localhost/Dats24/problem/add/', 
       data: data}) 
        .success(function (data, status, headers, config) { 
         $state.go('GoogleMaps'); 
        }).error(function (data, status, headers, config) { 
       console.log(data); 
      }); 

     }; 
    }) 

ответ

0

Для вашего углового применения вы можете использовать способ загрузки службы загрузки $, как это:

file_upload: function(file) { return $upload.upload({ url: ' http://your-upload-url/ ', file: file }); }

, как описано здесь: https://github.com/danialfarid/ng-file-upload

Тогда на службу в PHP, вы можете получить файл с помощью

move_uploaded_file($_FILES['file']['tmp_name'], $file_path);

Он будет хранить файл на пути вашего выбора, то вы можете использовать PHP, чтобы делать все, что вы хотите, с данными файла.

Смежные вопросы