Как реализовать minDimensions в Uploadcare Widget - PullRequest
0 голосов
/ 08 октября 2018

Настройки могут быть добавлены в Uploadcare следующим образом:

var myDialog = uploadcare.openDialog(null, {
    imagesOnly: true,
    multiple: true,
    multipleMin: 1
    multipleMax: 7
});

Теперь, как устанавливается minDimensions? Документация показывает minDimensions(800x600), но эта запись не работает.Следующая попытка не работает:

var myDialog = uploadcare.openDialog(null, {
    imagesOnly: true,
    multiple: true,
    multipleMin: 1
    multipleMax: 7,
    minDimensions: '800,600'
});

Следующее также не работает:

var myDialog = uploadcare.openDialog(null, {
    imagesOnly: true,
    multiple: true,
    multipleMin: 1
    multipleMax: 7,
    minWidth: 800,
    minHeight: 600
});

Кроме того, неясно, что произойдет, если размеры загруженного изображения меньше этих настроек.Виджет показывает ошибку?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

minDimensions , а также minWidth и minHeight не являются параметрами виджета.Ссылка относится к документам проверки файлов.Проверка файла - это функция, которая вызывается до полной загрузки файла и имеет доступ к объекту fileInfo, так что вы можете проверить параметры файла (размер, имя, размеры изображения и т. Д.) И прервать загрузку, если какой-либо параметр не соответствует вашему.требования.

Чтобы установить валидатор измерения изображения, сначала нужно определить функцию проверки

function minDimensions(width, height) {
  return function(fileInfo) {
    var imageInfo = fileInfo.originalImageInfo;
    if (imageInfo !== null) {
      if (imageInfo.width < width || imageInfo.height < height) {
        throw new Error('dimensions');
      }
    }
  }
}

Затем, когда вы открываете диалог, вы добавляете функцию проверки в массив валидаторов внастройки диалогового окна

var myDialog = uploadcare.openDialog(null, {
    imagesOnly: true,
    multiple: true,
    multipleMin: 1,
    multipleMax: 7,
    validators: [minDimensions(800, 600)]
});

Если файл не проходит проверку, виджет покажет сообщение об ошибке по умолчанию - «Не удается загрузить», но вы можете настроить сообщение об ошибке, используя опцию UPLOADCARE_LOCALE_TRANSLATIONS

UPLOADCARE_LOCALE_TRANSLATIONS = {
  // messages for widget
  errors: {
    'dimensions': 'The image has to be 800x600px or larger.'
  },
  // messages for dialog’s error page
  dialog: { tabs: { preview: { error: {
    'dimensions': {
      title: 'Error.',
      text: 'The image is too small. Try to upload another one.',
      back: 'Back'
    }
  } } } }
};
0 голосов
/ 09 октября 2018

Вам нужно определить свои собственные функции валидатора и добавить их в виджет / диалог.Итак, напишите minDimensions функцию с подписью и логикой на ваш выбор.Документы имеют пример реализации функций проверки imagesOnly и maxDimenstions.Вы можете использовать их для вдохновения.

Когда ваша функция проверки отклоняет файл по какой-то причине, вы должны выдать Error, например, throw new Error('dimensions'); Строка 'dimensions' будет использоваться для поиска удобного сообщения в вашемпользовательская карта локализации:

UPLOADCARE_LOCALE_TRANSLATIONS = {
  errors: {
    'dimensions': 'File dimension check failed',
    ...
  },
  ...
}

Более подробные примеры можно найти здесь .

...