uploadcare - 如何在 Uploadcare Widget 中实现 minDimensions
问题描述
可以将设置添加到 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
});
此外,尚不清楚如果上传的图像尺寸小于这些设置会发生什么。小部件是否显示错误?
解决方案
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'
}
} } } }
};
推荐阅读
- visual-studio-code - 无法远程 SSH 到 VSCode 上的 Windows 主机
- stream - 如何使用流但仍保留数据而不偏移
- python - 使用 pandas 的 lambda 函数的语法错误
- java - 内容协商。请求、响应支持 JSON 和 XML
- r - {rlang} 的'curly-curly' 操作符 `{{` 是如何实现的?
- batch-file - 通过批处理文件和 VBScript 压缩文件夹
- javascript - 如何在 1 个按钮中添加多个 id
- swift - Swift 5 – 如何在可能有肤色表情符号作为输入的 case 语句中使用基本表情符号?
- android - 尝试安装 Android Studio,我不能,因为它说我的用户有非 SCII 字符
- android - 约束布局如何在视图为多行时摆脱 textview 上的额外空间