如何在 Uploadcare Widget 中实现 minDimensions
How to implement minDimensions in Uploadcare Widget
Uploadcare可以添加如下设置:
var myDialog = uploadcare.openDialog(null, {
imagesOnly: true,
multiple: true,
multipleMin: 1
multipleMax: 7
});
现在 minDimensions
是如何设置的? The documentation 显示 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
});
此外,不清楚如果上传的图片尺寸小于这些设置会发生什么。小部件是否显示错误?
您需要定义自己的验证器函数并将它们添加到 widget/dialog。
因此,使用您选择的签名和逻辑编写 minDimensions
函数。
该文档具有 imagesOnly
和 maxDimenstions
验证函数的示例实现。您可以从中获取灵感。
当您的验证函数由于某种原因拒绝文件时,您应该抛出错误,例如throw new Error('dimensions');
'dimensions'
字符串将用于在您的自定义本地化地图中查找用户友好的消息:
UPLOADCARE_LOCALE_TRANSLATIONS = {
errors: {
'dimensions': 'File dimension check failed',
...
},
...
}
您可以找到更详细的示例 here。
minDimensions 以及 minWidth 和 minHeight 不是小部件选项。 link 指的是文件验证文档。文件验证是一个在文件完全上传之前调用的函数,它可以访问 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)]
});
如果文件未通过验证,小部件将显示默认错误消息 - "Can't upload",但您可以使用 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'
}
} } } }
};
Uploadcare可以添加如下设置:
var myDialog = uploadcare.openDialog(null, {
imagesOnly: true,
multiple: true,
multipleMin: 1
multipleMax: 7
});
现在 minDimensions
是如何设置的? The documentation 显示 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
});
此外,不清楚如果上传的图片尺寸小于这些设置会发生什么。小部件是否显示错误?
您需要定义自己的验证器函数并将它们添加到 widget/dialog。
因此,使用您选择的签名和逻辑编写 minDimensions
函数。
该文档具有 imagesOnly
和 maxDimenstions
验证函数的示例实现。您可以从中获取灵感。
当您的验证函数由于某种原因拒绝文件时,您应该抛出错误,例如throw new Error('dimensions');
'dimensions'
字符串将用于在您的自定义本地化地图中查找用户友好的消息:
UPLOADCARE_LOCALE_TRANSLATIONS = {
errors: {
'dimensions': 'File dimension check failed',
...
},
...
}
您可以找到更详细的示例 here。
minDimensions 以及 minWidth 和 minHeight 不是小部件选项。 link 指的是文件验证文档。文件验证是一个在文件完全上传之前调用的函数,它可以访问 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)]
});
如果文件未通过验证,小部件将显示默认错误消息 - "Can't upload",但您可以使用 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'
}
} } } }
};