Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript中的uploadcare限制文件类型?_Javascript_Uploadcare - Fatal编程技术网

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

如何使用javascript中的uploadcare限制文件类型?,javascript,uploadcare,Javascript,Uploadcare,我试图在打开uploadcare对话框时限制文件类型(仅mp3文件) uploadcare.loadFileGroup(soundGroupID) .done(function (fileGroup) { uploadcare.openDialog(fileGroup.files(), { multiple: true, multipleMin: 0,

我试图在打开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.
        });

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

不幸的是,当前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.
});
uploadcare.loadFileGroup(soundGroupID)
.done(函数(文件组){
var widget=uploadcare.MultipleWidget(“”);
widget.validators.push(函数(信息){
如果(info.name!==null){
如果(!/\.mp3$/i.test(info.name)){
抛出错误(“仅限mp3”);
}
}
});
widget.openDialog(null).done(
函数(文件){
file.promise().done(
功能(文件信息){
//做点什么
});
});
})
.fail(函数(){
//出了点问题。
});
或者,您可以在private
\uu validators
选项中传递验证程序列表,但这是内部API,可以在将来的版本中进行更改。

如果它将accept参数传递到文件输入的属性中,那么您就成功了。