2016-12-13 77 views
0

參數我有一個場景,一個屬性可以有多個圖像,但該圖像只能分配給一個屬性(一對多,屬性ID爲FK)。

在HTML中,我檢索屬性ID,並與uploadFile功能

<div id="imageDiv" ng-controller="uploadImageCtrl"> 
       <input type="button" class="btn btn-info" value="Upload Image" ng-click="uploadFile(pro.id)"/> 
       <input type="file" file-input="files"/> 
      </div> 

這裏我有我的app.js在那裏我檢索圖像傳遞和屬性ID AS標識。我試圖傳遞id和form_data。

app.directive("fileInput", function($parse){ 
    return{ 
     link: function($scope, element, attrs){ 
      element.on("change", function(event){ 
       var files = event.target.files; 
       console.log(files[0].name); 
       $parse(attrs.fileInput).assign($scope, element[0].files); 
       $scope.$apply(); 
      }); 
     } 
    } 
}); 
app.controller("uploadImageCtrl", function($scope, $http,$routeParams,$location){ 

    $scope.uploadFile = function(id){ 

    var form_data = new FormData(); 
     angular.forEach($scope.files, function(file){ 
     form_data.append('file', file); 
      }); 

    $scope.id = id; 
    console.log(id); 
    $routeParams.id = id; 
    //$scope.activePath = null; 
    $scope.updateMessage=""; 

    console.log(form_data);   
    $http.post('php/uploadImage.php/',{'id':id},form_data, 
     { 
      transformRequest: angular.identity, 
      headers: {'Content-Type': undefined,'Process-Data': false} 
     }).success(function(response){ 
      alert(response); 

     }); 
    } 
}); 

然後在uploadImage.php我指定的$ id從app.j檢索的屬性ID和圖像上傳到該屬性ID。

<?php 

$data = json_decode(file_get_contents("php://input")); 
$id=$data->id; 
echo $id; 
require_once("connection.php"); 
$conn = connectToDb(); 

if(!empty($_FILES)) 
{ 
     $path = '../Images/' . $_FILES['file']['name']; 
     if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) 
     { 
      $insertQuery = "INSERT INTO tbl_images(imagePath , propertyId) VALUES ('".$_FILES['file']['name']."',$id)"; 
      if(mysqli_query($conn, $insertQuery)) 
      { 
       echo 'File Uploaded'; 
      } 
      else 
      { 
       echo 'File Uploaded But not Saved'; 
      } 
     } 
} 
else 
{ 
    echo mysqli_error($conn); 
} 
?> 

的問題是,它給了我一個空白錯誤與編號爲8,不爲什麼它不上傳,8代表的$ id(回聲的$ id)。所以物業ID被成功地獲取並傳遞到的PHP。

錯誤可能是最後的ELSE statment(echo mysqli_error($ conn))。

是form_data不succefully通過呢?

+0

什麼的'json_decode'在做什麼?爲什麼會突然FORMDATA被JSON – adeneo

+0

由於屬性ID是從JSON – NOSMILE

+0

檢索你以爲我到FORMDATA轉換成JSON?如果是,我該怎麼做? – NOSMILE

回答

0

我只是需要追加ID以及與表單數據,然後與正常POST檢索ID。

app.controller("uploadImageCtrl", function($scope, $http,$routeParams,$location){ 

    $scope.uploadFile = function(id){ 

    var form_data = new FormData(); 
    angular.forEach($scope.files, function(file){ 
     form_data.append('file', file); 
    }); 
    form_data.append('elmID', id); 

    $http.post('php/uploadImage.php',form_data, 
     { 
      transformRequest: angular.identity, 
      headers: { 
       'Content-Type': undefined, 
       'Process-Data': false 
      } 
     }).success(function(response){ 
      alert(response); 
     }); 
    } 

});