2016-10-12 8 views
0

私はファイルアップロードプロセスの一部を稼働させましたが、私が理解できない部分はバックエンドでdbに保存することです。角を使ってファイルをアップロードするためのPHPバックエンド

そう...

<input type="file" name="file" id="thefile" multiple ng-files="getTheFiles($files)"/> 
<input name="submit" type="submit" ng-click="uploadFiles()" value="Submit"> 

そして、ここでは、コントローラ私のhtmlです...

app.controller('import', function($scope, $http) { 
    var formdata = new FormData(); 
    $scope.getTheFiles = function ($files) { 
     angular.forEach($files, function (value, key) { 
      formdata.append(key, value); 
     });  
    }; 
    $scope.uploadFiles = function() { 
      var request = { 
       method: 'POST', 
       url: '../submit.php', 
       data: formdata, 
       headers: { 
        'Content-Type': undefined 
       } 
      }; 

      // SEND THE FILES. 
      $http(request) 
       .success(function (d) { 
        alert(d); 
       }) 
       .error(function() { 
       }); 
     } 
}); 

私はオブジェクトを取得console.log(formdata)とき、これは、動作しているようです。しかし今、私はそれをDBとサーバーに保存する必要があります。私が試しただけのPHPコードは、1つのファイルを保存します通常の方法だった...

if(isset($_FILES['file'])) { 

    $file = rand(1000,100000)."-".$_FILES['file']['name']; 
    $file_loc = $_FILES['file']['tmp_name']; 
    $file_size = $_FILES['file']['size']; 
    $file_type = $_FILES['file']['type']; 
    $folder="uploads/"; 

    move_uploaded_file($file_loc,$folder.$file); 
    $sql="INSERT INTO tbl_uploads(file,type,size) VALUES(?,?,?)"; 
    $statement = $conn->prepare($sql); 
    $statement->execute(array($file,$file_type,$file_size)); 

しかし、これは何もしません。また、私の角のプリントがsuccessだから私はそれをデバッグするのが難しいと思っていますが、私はそれにHTTPリクエストをしているので、サーバ側ではechoできません。

答えて

0

あなたの欠点は、リクエストデータを自動的に変換することです。これはFormDataでは不要です。
リクエストオブジェクトにtransformRequest: angular.identity,を追加することでこれを止めることができます。

関連する問題