1

我有一个上传器,它有两种上传不同文件类型的模式。哪个是活动的取决于用户在做什么。我正在使用 FineUploaderBasic。

现在动态修改 allowedExtensions 我做这样的事情:

                if(type==<?=Campaign_Placement::AD_TYPE_USER_FLASH?>) // SWF
                    uploader._options.validation.allowedExtensions = ['swf'];
                else // Static image
                    uploader._options.validation.allowedExtensions = ['jpeg', 'jpg', 'gif', 'png'];
                uploader.reset(); // Resets with the new extensions

并修改acceptFiles:

                if(type==<?=Campaign_Placement::AD_TYPE_USER_FLASH?>) // SWF
                    $('input[name="userfile"]').attr("accept", "application/x-shockwave-flash");
                else // Static image
                    $('input[name="userfile"]').attr("accept", "image/jpeg, image/jpg, image/gif, image/png");

两者都是丑陋的方法,希望通过 API 或其他一些优雅的解决方案来实现这两种方法的简单方法。谢谢!

4

1 回答 1

1

您有 3 个其他选项来解决此问题:

  1. 根本不要设置allowedExtensions验证值。然后根据您提供的选择值提供一个validate事件处理程序,如果用户提交了无效文件,则返回该事件处理程序。false
  2. 每当用户更改他们的选择时,只需构造或重新构造上传器实例。
  3. 考虑使用相对较新的extraButtons功能,您可以在其中将其他上传按钮连接到具有不同验证选项的单个 Fine Uploader。例如,您可以贡献一些默认允许的扩​​展(绑定到默认的上传按钮),然后提供一个extraButtons带有 alternate 的按钮allowedExtensions。当用户更改他们的选择时,只需通过 JavaScript 显示相应的按钮。
于 2013-11-06T17:10:12.063 回答