如何在不使用ngualrjs的ngFlow插件上传的情况下将图像添加到$ flow.files

时间:2015-05-06 15:06:35

标签: angularjs ng-flow

以下是我上传头像的HTML标记:

<div  style="padding: 10px;">
  <div class="text-center">
    <h4><kbd>Avatar Picture</kbd></h4>
  </div>
  <div class="thumbnail" ng-hide="obj.flow.files.length">
    <img src="Some url for none avatar picture."/>
  </div>
  <div class="thumbnail" ng-show="obj.flow.files.length">
    <img flow-img="obj.flow.files[0]"/>
  </div>
  <div class="text-center">
    <span class="btn btn-info" ng-hide="obj.flow.files.length" flow-btn
                              flow-attrs="{accept:'image/*'}">Select image</span>
    <span class="btn btn-info" ng-show="obj.flow.files.length" flow-btn
                              flow-attrs="{accept:'image/*'}">Change</span>
    <a href="#" class="btn btn-danger" ng-show="obj.flow.files.length"
       ng-click="obj.flow.cancel()">Remove</a>
  </div>
</div>

如果用户具有头像(没有请求发送),如何添加图像。使用$ scope。$ flow.addFile()我认为是一个坏主意。

我的意思是如果用户有头像并且obj.flow.files [0]不应该为空,因为需要显示他的头像。

1 个答案:

答案 0 :(得分:0)

如果要阻止上传文件添加的流量,请使用以下命令来阻止此默认行为。您仍然可以访问obj.flow.files [0]中的文件,但它只会被临时存储(不会上传到服务器)。

$scope.$on('flow::fileAdded', function (event, $flow, flowFile) {
    event.preventDefault();
}

例如,要忽略大于特定文件大小的文件,我会这样做(否则,继续上传)。

$scope.$on('flow::fileAdded', function (event, $flow, flowFile) {

    if(flowFile.size > 5000000) {
        $scope.errorText = "Error: File too large.";
        //prevent file from uploading
        event.preventDefault();
    } else {
        // Upload file.
        $flow.upload(); 
    }
});

希望我能正确理解你的问题。