如何在javascript中使用uploadcare限制文件类型?

时间:2014-11-10 18:35:33

标签: javascript uploadcare

当我打开uploadcare对话框时,我试图限制文件类型(仅限mp3文件)。

        uploadcare.loadFileGroup(soundGroupID)
        .done(function (fileGroup) {
            uploadcare.openDialog(fileGroup.files(), {
                multiple: true,
                multipleMin: 0,
                fileTypes="mp3"
            }).done(
                function (file) {
                    file.promise().done(
                        function (fileInfo) {
                            //TODO Something
                        });
                });
        })
        .fail(function () {
            // Something went wrong.
        });

有没有办法推送验证器?有没有办法访问小部件?如您所见,我正在打开一个对话框,因此我无法在任何地方访问该小部件。

1 个答案:

答案 0 :(得分:2)

不幸的是,当前API中没有用于对话框的验证器,仅适用于小部件。但是你可以创建假小部件并在其上使用.openDialog()方法。

uploadcare.loadFileGroup(soundGroupID)
.done(function (fileGroup) {
    var widget = uploadcare.MultipleWidget('<input data-multiple multiple-min="1">');
    widget.validators.push(function(info) {
        if (info.name !== null) {
            if ( ! /\.mp3$/i.test(info.name)) {
                throw Error('mp3-only');
            }
        }
    });
    widget.openDialog(null).done(
        function (file) {
            file.promise().done(
                function (fileInfo) {
                    //TODO Something
                });
        });
})
.fail(function () {
    // Something went wrong.
});

或者,您可以在私人__validators选项中传递验证码列表,但这是内部API,未来版本中可以更改