compress: раздельная диагностика отсева (формат vs размер)
This commit is contained in:
parent
4259c3daf7
commit
d997bad179
@ -309,18 +309,29 @@ let isAdmin = false;
|
||||
}
|
||||
}).catch(function(){}); })();
|
||||
|
||||
function isValidFormat(f) {
|
||||
return VALID_TYPES.includes(f.type) || /\.(jpe?g|png|webp|avif|tiff?|gif|bmp|svg|heic|heif)$/i.test(f.name);
|
||||
}
|
||||
|
||||
function handleFiles(files) {
|
||||
const arr = Array.from(files);
|
||||
const valid = arr.filter(f => (VALID_TYPES.includes(f.type) || /\.(jpe?g|png|webp|avif|tiff?|gif|bmp|svg|heic|heif)$/i.test(f.name)) && f.size <= MAX_SIZE);
|
||||
const invalid = arr.length - valid.length;
|
||||
const valid = [], badFormat = [], tooBig = [];
|
||||
arr.forEach(f => {
|
||||
if (!isValidFormat(f)) badFormat.push(f);
|
||||
else if (f.size > MAX_SIZE) tooBig.push(f);
|
||||
else valid.push(f);
|
||||
});
|
||||
|
||||
// Раздельная диагностика: точно видно, что именно отсеяно
|
||||
const parts = [];
|
||||
if (badFormat.length) parts.push(badFormat.length + ' — неподдерживаемый формат');
|
||||
if (tooBig.length) parts.push(tooBig.length + ' — больше ' + (MAX_SIZE / 1024 / 1024).toFixed(0) + ' МБ');
|
||||
if (parts.length) showError('Пропущено: ' + parts.join(', '));
|
||||
|
||||
if (!valid.length) {
|
||||
showError('Нет подходящих файлов. Допустимы JPEG, PNG, WebP, AVIF, TIFF, GIF, BMP, HEIC до 20 МБ.');
|
||||
if (!parts.length) showError('Нет файлов. Допустимы JPEG, PNG, WebP, AVIF, TIFF, GIF, BMP, SVG, HEIC.');
|
||||
return;
|
||||
}
|
||||
if (invalid > 0) {
|
||||
showError(invalid + ' файл(ов) пропущено (неверный формат или размер > 20 МБ)');
|
||||
}
|
||||
|
||||
valid.forEach(f => addFileEntry(f));
|
||||
drainQueue();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user