将对象文件发布到服务器

时间:2018-06-16 03:54:40

标签: php angularjs

我目前正在将数组中的文件上传到服务器,但其未定义。但是,检查控制台日志时会出现一个对象。我的问题如何在服务器上发布。是否有正确的方法来执行此操作,以便我可以在服务器的foreach循环中处理我的文件。这是我的代码。

HTML

NULL

console log js

enter image description here

js

<td>
    <div class="requpload form-input">
        <div class="controls">
            <div class="normal-input">
                 <input type="file" ng-file-model="info.file[pIndex]">
            </div>
        </div>
    </div>
</td>

服务器

$scope.saveInfo = function(){  
           var form_data = new FormData();  
           angular.forEach($scope.info.file, function(file){  
                form_data.append('file', file);
           });  
           $http.post('data.php', form_data,  
           {  
                transformRequest: angular.identity,  
                headers: {'Content-Type': undefined,'Process-Data': false}  
           }).then(function(response){  

               console.log(response.data);

           });  
      }  

1 个答案:

答案 0 :(得分:0)

您需要替换angular.forEach中的代码,如:

angular.forEach($scope.files, function(file){
    console.log(file);
    form_data.append('file[]', file);
});

其余的angularjs代码与您发布的相同。现在,在您的服务器端代码中处理单个或多个文件。

foreach($_FILES['file']['name'] as $key=>$val){  //foreach for handle single or multiple file upload
    $upload_dir = "upload/";
    $upload_file = $upload_dir.$_FILES['file']['name'][$key];
    $filename = $_FILES['file']['name'][$key];
    if(move_uploaded_file($_FILES['file']['tmp_name'][$key],$upload_file)){
        //Here, Insert the path or filename into database.
    }
}