Dropzone如何以KB为单位设置maxFilesize限制上传文件大小
Dropzone以KB为单位限制文件大小的实现方案
Dropzone 原生的maxFilesize配置项默认单位为MB,没有提供直接切换单位的参数,可以通过以下两种方式实现KB级的大小限制:
方法1:单位换算后直接配置maxFilesize
这是最简单的实现方式,按照存储单位换算规则1MB = 1024KB,将你需要限制的KB数值除以1024,得到的MB值填入maxFilesize即可,会自动沿用Dropzone默认的超限拦截、提示逻辑。
比如需要限制单文件最大为500KB,配置如下:
Dropzone.options.myDropzone = { maxFilesize: 500 / 1024, // 等效于约0.488MB,即500KB init: function() { this.on("uploadprogress", function(file, progress) { console.log("File progress", progress); }); } }
方法2:自定义accept回调做KB级校验
如果需要自定义大小超限的提示文案,或者要加更复杂的大小判断逻辑,可以在accept回调中直接读取文件原始大小做校验:
- Dropzone传入的
file.size属性单位为字节,换算规则为1KB = 1024字节 - 注意需要先把原生
maxFilesize设为一个更大的值,避免默认的MB级校验提前拦截,导致自定义逻辑不生效
示例代码(限制500KB):
Dropzone.options.myDropzone = { maxFilesize: 100, // 设为远大于目标限制的值,绕过默认MB校验 init: function() { this.on("uploadprogress", function(file, progress) { console.log("File progress", progress); }); }, accept: function(file, done) { const maxLimitKB = 500; const currentFileKB = file.size / 1024; if (currentFileKB > maxLimitKB) { done(`文件大小超出限制,最大允许${maxLimitKB}KB`); return; } done(); } }
内容的提问来源于stack exchange,提问作者ManUtd
相关产品推荐
相关产品推荐

