将xhr数据传递给rubaxa fileapi

时间:2014-04-03 05:36:15

标签: javascript jquery fileapi

我正在使用此api进行文件上传,并且需要在onFilePrepare事件被触发时动态传递一些数据,但它不会将该数据发送到url。请建议我必须在b事件中添加1个新的数据参数onFilePrepare,这在最初期间是不可用的,因为从嵌套的ajax设置调用fileapi

https://github.com/RubaXa/jquery.fileapi

代码:

 $('#multiupload').fileapi({
                   url: "url",
                   data: ({'a':'A'}), 
                   clearOnComplete: true,
                   multiple: true,
                   elements: {                    
                      ctrl: { upload: '.js-upload' },
                      emptyQueue: { hide: '.js-upload' },
                      list: '.js-files',
                      name: '.js-name',
                      size: '.js-size',
                      file: {
                         tpl: '.js-file-tpl',
                         preview: {
                            el: '.b-thumb__preview',
                            width: 80,
                            height: 80
                         },
                         upload: { show: '.progress', hide: '.b-thumb__rotate' },
                         complete: { hide: '.progress' },
                         progress: '.progress .bar'
                      }
                   },
                   onFilePrepare : function(evt,ui) {

                       //pass more data dynamically
                       ui.xhr.options.data = { 'a':'A','b':'B'};
                       console.log(ui.xhr.options);
                   },
                   onComplete : function (evt, ui) {

                       //read ajax data returned
                       var data = JSON.parse(ui.xhr.response);
                       console.log(ui.xhr.options);

                   }                       

            }); 

1 个答案:

答案 0 :(得分:0)

使用最新的Rubaxa库,其工作方式如下 - 感谢rubaXa帮助git

onFilePrepare的变化

 $('#multiupload').fileapi({
                   url: "url",
                   data: ({'a':'A'}), 
                   clearOnComplete: true,
                   multiple: true,
                   elements: {                    
                      ctrl: { upload: '.js-upload' },
                      emptyQueue: { hide: '.js-upload' },
                      list: '.js-files',
                      name: '.js-name',
                      size: '.js-size',
                      file: {
                         tpl: '.js-file-tpl',
                         preview: {
                            el: '.b-thumb__preview',
                            width: 80,
                            height: 80
                         },
                         upload: { show: '.progress', hide: '.b-thumb__rotate' },
                         complete: { hide: '.progress' },
                         progress: '.progress .bar'
                      }
                   },
                   onFilePrepare : function(evt,ui) {

                       //pass more data dynamically
                       ui.options.data.b = 'B';
                   },
                   onComplete : function (evt, ui) {

                       //read ajax data returned
                       var data = JSON.parse(ui.xhr.response);
                       console.log(ui.xhr.options);

                   }                       

            });