2016-06-12 20 views
0

我正在使用UIkit的文件上傳功能。在網頁上,我有多個用戶可以發佈文件的項目。每個項目都有不同的ID。修改設置UIkit上傳後初始化使用jquery

我想要的是,對於每個項目,文件進入一個文件夾名稱的項目ID。但是,當UIkit.uploadSelect被初始化時,我無法修改參數。

當我按下一個項目;在函數上觸發一​​個onclick事件:GetTaskInfo();

我嘗試了很多東西,但仍然沒有成功。

任何幫助表示讚賞。

文件上傳功能(打電話的UIKit):

function Upload(id) { 
    var progressbar = $("#task_info_progressbar"), 
     bar = progressbar.find('.uk-progress-bar'), 
     settings = { 

      action: '/Scrum/Upload', // upload url 

      params: { 
       folder: "scrum", 
       id: id 
      }, 

      allow: '*.(zip)', // allow only zip files 

      filelimit: 1, 

      beforeAll: function (files) { 

      }, 
      loadstart: function() { 
       bar.css("width", "0%").text("0%"); 
       progressbar.removeClass("uk-hidden"); 
      }, 
      progress: function (percent) { 
       percent = Math.ceil(percent); 
       bar.css("width", percent + "%").text(percent + "%"); 
      }, 
      error: function() { 

      }, 
      abort: function() { 

      }, 
      allcomplete: function (response) { 
       bar.css("width", "100%").text("100%"); 

       setTimeout(function() { 
        progressbar.addClass("uk-hidden"); 
       }, 250); 

      }); 
      } 
     }; 

    var select = UIkit.uploadSelect($("#task_info_file_select"), settings), 
     drop = UIkit.uploadDrop($("#task_info_file_drop"), settings); 
} 

當用戶打開一個項目的功能。

function GetTaskInfo(id) { 
    task_id = $('#task_id'); 
    Upload(task_id); 
} 

UIKit的上傳功能(http://getuikit.com/docs/upload.html

})(function(UI){ 

"use strict"; 

UI.component('uploadSelect', { 

    init: function() { 

     var $this = this; 

     this.on("change", function() { 
      xhrupload($this.element[0].files, $this.options); 
      var twin = $this.element.clone(true).data('uploadSelect', $this); 
      $this.element.replaceWith(twin); 
      $this.element = twin; 
     }); 
    } 
}); 

UI.component('uploadDrop', { 

    defaults: { 
     'dragoverClass': 'uk-dragover' 
    }, 

    init: function() { 

     var $this = this, hasdragCls = false; 

     this.on("drop", function(e){ 

      if (e.dataTransfer && e.dataTransfer.files) { 

       e.stopPropagation(); 
       e.preventDefault(); 

       $this.element.removeClass($this.options.dragoverClass); 
       $this.element.trigger('dropped.uk.upload', [e.dataTransfer.files]); 

       xhrupload(e.dataTransfer.files, $this.options); 
      } 

     }).on("dragenter", function(e){ 
      e.stopPropagation(); 
      e.preventDefault(); 
     }).on("dragover", function(e){ 
      e.stopPropagation(); 
      e.preventDefault(); 

      if (!hasdragCls) { 
       $this.element.addClass($this.options.dragoverClass); 
       hasdragCls = true; 
      } 
     }).on("dragleave", function(e){ 
      e.stopPropagation(); 
      e.preventDefault(); 
      $this.element.removeClass($this.options.dragoverClass); 
      hasdragCls = false; 
     }); 
    } 
}); 

回答

1

參考文件建立 https://getuikit.com/docs/upload.html 使用 「之前」 做出請求

before: function (settings, files) { 
     settings.params.folder = $("#someID").val() 
} 
之前修改設置