【问题标题】:Angular - ng-flow How to send String along with FileAngular - ng-flow 如何将字符串与文件一起发送
【发布时间】:2014-09-13 10:55:49
【问题描述】:

flow` 比什么都好。

我还想在Angular js 中使用ng-flow 发送一个输入文本和文件

请帮帮我...

【问题讨论】:

  • 确认!我也需要这个。您可以在配置时使用“查询”选项向获取请求添加查询参数,但我还没有弄清楚如何在上传时执行此操作。恼人的!我觉得这是一个功能非常复杂的大型库,不幸的是文档覆盖范围非常小......
  • 完全不值得使用 ng-flow
  • 我认为这不仅仅是放弃图书馆的情况,而是看看如何根据自己的需要改变它。请参阅下面的答案。

标签: php angularjs post flow-js


【解决方案1】:

所以我找到了解决方案!并不是图书馆不好,更多的是文档很薄,他们把它留给你来解决问题。我最终遵循了构建请求时所采用的代码中的整个路径。

在上一期中,我需要在文件被删除时立即停止上传,这里有人建议在 ng-click 函数中进行上传。

这是他们给我的代码。 (flow.js upload file on click)

ctrl.uploadItems = function(e){

    //Do what you need to do

    e.opts.query = {student_id: $scope.globals.userInfo.id, assignment_id: ctrl.submissionParams};

    e.upload();

};

然后通过注销e,我发现对象中有query 选项,我将块修改如下。

ctrl.uploadItems = function(e){

    e.opts.query = {parameter_to_add: value};

    e.upload();

};

通过这种方式,您可以在上传时以任何方式修改对象。

【讨论】:

    【解决方案2】:

    我在https://github.com/flowjs/ng-flow/issues/33找到了 AidasK 的答案

    您可以使用查询选项传递自定义参数。你有三个选项可以做到这一点。

    选项一:

    <div flow-init="{
      query: { id: 2, source: 'flow_query' },
      headers: { id: 5, source: 'flow_header' }
    }">
    

    选项二:

    <div flow-init="{
      query: functionFromcontroller
    }">
    

    选项三:

    <div flow-init="config">
    
    </div>
    

    在您的控制器中:

    function MyCtrl($scope) {
      $scope.config = {
        query: function (flowFile, flowChunk) {
          // function will be called for every request
          return {
            id: 2, source: 'flow_query'
          };
        }
      };
    } 
    

    【讨论】:

      【解决方案3】:

      要在添加文件时添加查询参数,可以通过在控制器中捕获文件添加事件并在其中设置查询参数来完成,如下所示:

      $scope.$on('flow::fileAdded', function (event, $flow, flowFile) {       
              $flow.opts.query = { someParam: yourValue, otherParam: otherValue };
          });
      

      这些额外的参数将被添加到上传中,并且可以在服务器上进行处理。

      【讨论】:

      • 如何在服务器端访问那些额外的参数?
      • @razp26 您可以在服务器上获取它们,就像获取“flowChunkNumber”、“flowTotalChunks”、“flowIdentifier”和“flowFilename”参数一样。例如,只需将 'flowFilename' 替换为 'someParam'。
      猜你喜欢
      • 2014-06-25
      • 2023-03-26
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      相关资源
      最近更新 更多