javascript - 无法使用 Angular.js 和 PHP 获取文件参数值

标签 javascript php angularjs

我面临一个问题。我正在尝试使用 Angular.js 和 PHP 上传文件,但我可以成功发送文件参数值,但在 PHP 端我无法获取它。我在下面解释我的代码。

workspesh.html:

<div class="pad-bot-10">
<label for="attachment">Attachment</label>
<div class="form-group" style="margin-bottom:0px;">
<input type="file" name="documentlink" id="documentlink" ng-model= "subdata.form.documentlink" onchange="angular.element(this).scope().uploadedHosFile(this)" class="file">
 <div class="input-group col-xs-12">
<input type="text" class="form-control" placeholder="Attachment" id="documenturl">
 <span class="input-group-btn">
 <button class="browse btn btn-primary" type="button">Attachment</button>
 </span> </div>
 </div>
 </div>

workspeshController.js:

    $scope.uploadedHosFile = function(element) {     
            var files = element.files;
            var filename=files[0]['name'];
            var filetype=filename.substring(filename.lastIndexOf('.') + 1).toLowerCase();
            var size=files[0].size;
            if ($.inArray(filetype, ["php", "exe"] ) != -1) {
                alert("Please upload document or image only !!");
                return false;
            }else if (size > 10485760) {
                alert("File size shouldn't be more than 10MB !!!");
                return false;
            }else{
                var allHosImg=filename;
                $scope.hosfiles = element.files;
                document.getElementById('documenturl').value = allHosImg;
            }
        };
    $http({
            method  : 'POST',
            url     : 'php/myworkspesh.php?action=saveAddEvent',
            processData: false,
            headers: {'Content-Type': undefined},
            transformRequest:function(){
                var formData = new FormData();
                formData.append("documenturl", $scope.hosfiles);
                return formData;  
            },
            data : $scope.form,
}).success(function(data){
    console.log(data);
})

myworkspesh.php:

class Myworkspesh{
   public function saveAddEvent($postData){
        $url = "myworkspaceapi.php?action=saveAddEvent";
        $numfile = 0;
        print_r($_FILES);exit;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $response = curl_exec ($ch);
        curl_close ($ch);
        echo $response;
    }
}
$obj = new Myworkspesh();
$action = (isset($_GET['action']))?$_GET['action']:'';
if(method_exists($obj,$action)){
    $obj->$action($_POST);
}else{
    return false;
}

myworkspaceapi.php:

$action = (isset($_GET['action']))?$_GET['action']:'';
class MyworkspaceApi{
  public function saveAddEvent(){
        $documenturl = ($_REQUEST['documenturl'] != 'undefined')?$_REQUEST['documenturl'] : '';
        echo json_encode($documenturl);
    }
}
$obj = new MyworkspaceApi();
$action = (isset($_GET['action']))?$_GET['action']:'';
if(method_exists($obj,$action)){
    $obj->$action($dbobj);
}else{
    return false;
}

在 PHP 端脚本中,我无法获取任何文件值。这里我需要获取总文件值并将其上传到本地文件夹中。

最佳答案

检查 php.ini 中“post_max_size”和“max_file_uploads”的值。如果上传的文件大小大于这两个配置,您的服务器端将不会收到任何内容。

关于javascript - 无法使用 Angular.js 和 PHP 获取文件参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48071581/

相关文章:

javascript - 滚动到 flexbox 容器中的元素

javascript - 在 Web Api 中设置 cookie 后,如何在 angularjs 中读取 cookie

JavaScript 错误 : 'document' is not defined. [no-undef]

javascript - 使用 Chrome 扩展检测 Gmail 收件箱中的电子邮件

javascript - Jquery 同时处理两个或多个变量

php - 如何以多对多关系连接表

php - 谷歌地图 - 获取 Php 数组中的点,到 map 上的点

php - Yii CUrlManager 规则 - 如何将自定义文本从模型添加到 url

angularjs - Angular 将服务属性绑定(bind)到 Controller 范围

javascript - 如何在 Angular <select>中获取选定的选项