获取ng-file-upload POST DATA的内容

时间:2017-10-08 15:53:03

标签: javascript php angularjs http

我正在使用Github中的ng-file-upload。我已成功上传并在目标文件夹和数据库上添加了图像。但是,我需要客户端的特定数据,这是我的查询所需要的。

Controller.js ----我的上传功能的示例片段。

$scope.upload = function (dataUrl, name) {
        Upload.upload({
            url: 'php/profile-pic.php',
            method: 'POST',
            transformRequest: angular.identity,
            headers: {
                'Content-Type': undefined,
                'Process-Data' : false
            },
            data: {
                file: Upload.dataUrltoBlob(dataUrl, name),
                id: user[0].id
            },

        }).then(function (response) {

            $timeout(function () {
                $scope.result = response.data;
            });
            console.log(response);
        }, function (response) {
            if (response.status > 0) $scope.errorMsg = response.status 
                + ': ' + response.data;

                console.log(response);
        }, function (evt) {
            $scope.progress = parseInt(100.0 * evt.loaded / evt.total);
        });
    }

PHP ----我服务器端的相关代码

        $postdata = file_get_contents("php://input");
        $data = json_decode($postdata);
        // $id = $data->id;
        echo json_encode($data) // returns null

        if(!empty($_FILES))  
        {  
            $filename = $_FILES['file']['name'];
            $destination = '/../images/' . $filename; 
             if(move_uploaded_file( $_FILES['file']['tmp_name'] , PATH . $destination ))  
             {  
                  $insertQuery = "UPDATE tblusers SET image = ".$_FILES['file']['name']." WHERE id='???'"; // ??? = the specific data that I need

图片 ----来自console.log response HTTP Response id是我需要查询的内容。

我怎么能得到它? file_get_contents无法为此工作,它会返回null

1 个答案:

答案 0 :(得分:0)

我得到了我正在寻找的答案。

在我upload function的{​​{1}}中,我使用撇号将controller key更改为id

'id'

在我的data: { file: Upload.dataUrltoBlob(dataUrl, name), 'id': user[0].id } 中,我这样做了:

php code

我在页面的最后部分从Github Repo Issues得到了这个想法。