Как я могу ограничить тип файла с uploadcare в JavaScript?
Я пытаюсь ограничить тип файла (только файлы mp3), когда открываю диалог с uploadcare.
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 ответ
Решение
К сожалению, в текущем 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 и может быть изменен в будущих версиях.