如何在创建控件后使用Uploadify更改设置

时间:2015-08-13 19:12:15

标签: javascript jquery uploadify

我使用以下代码初始化Uploadify:

$('#file1').uploadifive({
   'buttonClass': 'upload-btn',
   'uploadScript': '/Upload/',
   'fileObjName': 'files',
   'fileType': 'text/xml',
   'formData': { 'uploadType': 'Crew' },
   'onUploadComplete': function(file, data) {
      var results = $.parseJSON(data);
      if (results.error) {
         var info = file.queueItem.find('span.fileinfo');
         if (info) info.text(' - ' + results.error);
         return;
      }

      window.location.href = '@Url.Content("~/Upload/Checkdata/")' + results.id;
   }
});

这样可行,但是当收音机复选框发生变化时,我需要修改formData属性。所以,我试过这个:

$('input[name=UploadType]:radio').change(function () {
   $('#file1').uploadifive({ 'formData': this.value });
});

然而,当该代码运行时,它会破坏Uploadify控件(它现在不再上传任何地方)。我猜是因为它完全使用所有新设置重新初始化控件。

如何更新这一个设置?我已经阅读了Uploadify文档,但没有人说过更新设置;只是初始化和调用方法。谢谢!

1 个答案:

答案 0 :(得分:0)

我已经找到了一个解决方案,但不确定它是否是正确的做事方式(也就是说,它可能会在未来版本的Uploadify中中断)。

基本上,您可以随时保留对配置的引用,并随时更新该对象:

var uploadifySettings = {
   'buttonClass': 'upload-btn',
   'uploadScript': '/Upload/',
   'fileObjName': 'files',
   'fileType': 'text/xml',
   'formData': { 'uploadType': 'Crew' },
   'onUploadComplete': function(file, data) {
      var results = $.parseJSON(data);
      if (results.error) {
         var info = file.queueItem.find('span.fileinfo');
         if (info) info.text(' - ' + results.error);
         return;
      }

      window.location.href = '@Url.Content("~/Upload/Checkdata/")' + results.id;
   }
}

$('input[name=UploadType]:radio').change(function () {
   uploadifySettings.formData.uploadType = this.value;
});

$('#file1').uploadifive(uploadifySettings);