Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将文件提交到ng文件上载时,文件未定义_Javascript_Angularjs_File Upload - Fatal编程技术网

Javascript 将文件提交到ng文件上载时,文件未定义

Javascript 将文件提交到ng文件上载时,文件未定义,javascript,angularjs,file-upload,Javascript,Angularjs,File Upload,我有以下问题: 我正在使用ng文件上载将文件发布到我的后端。 我已经设置了当有人按下a按钮时通过ng显示下降区域。 这是完美的作品,我可以选择一个文件,我也看到它的名称一样,在演示ng文件上传。 用户现在应该能够在点击save时上载此文件,但每次他这样做时都会告诉我文件未定义 这里是我的上传和保存方法: 上传: $scope.upload = function (files) { console.log($scope.files); if ($scope.files

我有以下问题:

我正在使用ng文件上载将文件发布到我的后端。 我已经设置了当有人按下a按钮时通过ng显示下降区域。 这是完美的作品,我可以选择一个文件,我也看到它的名称一样,在演示ng文件上传。 用户现在应该能够在点击save时上载此文件,但每次他这样做时都会告诉我文件未定义

这里是我的上传和保存方法:

上传:

  $scope.upload = function (files) {
        console.log($scope.files);
    if ($scope.files && files.length) {
        for (var i = 0; i < files.length; i++) {
            var file = files[i];
            $upload.upload({
                url: base+'/doc/'+$scope.project_id+'?name='+$scope.doc.name,
                                    method: 'POST',
                doc: file
            }).progress(function (evt) {
                var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
                console.log('progress: ' + progressPercentage + '% ' +
                            evt.config.file.name);
            }).success(function (data, status, headers, config) {
                console.log('file ' + config.file.name + 'uploaded. Response: ' +
                            JSON.stringify(data));
            });
        }
    }
};
我想不出为什么文件应该是空的,因为ng在前端重复工作

<div ng-file-drop ng-file-select ng-model="files" class="drop-box"
      drag-over-class="dragover" ng-multiple="true" allow-dir="true">Drop pdfs or images here or click to upload</div>
  <div ng-no-file-drop>File Drag/Drop is not supported for this browser</div>
  <ul>
    <li ng-repeat="f in files" style="font:smaller">{{f.name}}</li>
将PDF或图像放到此处或单击上载
此浏览器不支持文件拖放
  • {{{f.name}

它完美地显示了我的名字。

不要用
ng if
设置放置区域。使用
ng show
不会创建新的作用域。我也用ng show尝试过,但没有修复。此外,整个区域位于另一个ng if内。您认为使用ng show是一个问题还是一个建议?我知道ng show不会创建另一个作用域是的,我确信这可能是问题所在,因为ng if only,如果您确实想继续使用ng if,那么您需要使用
$parent。
对于所有内部作用域变量,我不认为这是问题所在。我有一个按钮,它使用触发器功能,通过ng if显示我网站上的一个区域。该区域有一个保存按钮,用于触发其他数据类型的POST或GET。唯一的问题是文件上传。如果工作正常,我只需要在这个ng中发送一个或获取一个JSON。您能尝试执行
ng model=“$parent.files”
<div ng-file-drop ng-file-select ng-model="files" class="drop-box"
      drag-over-class="dragover" ng-multiple="true" allow-dir="true">Drop pdfs or images here or click to upload</div>
  <div ng-no-file-drop>File Drag/Drop is not supported for this browser</div>
  <ul>
    <li ng-repeat="f in files" style="font:smaller">{{f.name}}</li>