]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix(ERP-257): graceful fallback для HEIC-файлов, которые уже являются JPEG
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Mon, 16 Mar 2026 13:17:43 +0000 (16:17 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Mon, 16 Mar 2026 13:17:43 +0000 (16:17 +0300)
iPhone иногда сохраняет JPEG с расширением .HEIC. Библиотека heic2any
бросала ERR_USER вместо того, чтобы пропустить файл. Теперь при ошибке
"already browser readable" файл передаётся как есть с корректным расширением.

erp24/web/js/heic_to_jpg_replace.js

index 927ff7e65c0d8a9e7cd9309e052fe0c2145fca81..1e1c765a73a0f870641bfaa265d2a0b208169b83 100644 (file)
@@ -42,6 +42,15 @@ $(document).on('change', 'input[type=file]', function (e) {
                     });
                 })
                 .catch(function (x) {
+                    // Файл с расширением .HEIC, но внутри уже JPEG/PNG (iPhone)
+                    // — пропускаем конвертацию, просто переименовываем
+                    if (x.code === 1 && /already browser readable/i.test(x.message)) {
+                        var ext = (x.message.match(/image\/(jpeg|png|webp)/i) || [null, 'jpeg'])[1];
+                        return new File([file], file.name + "." + ext, {
+                            type: "image/" + ext,
+                            lastModified: new Date().getTime()
+                        });
+                    }
                     alert("Ошибка конвертации HEIC: " + file.name + ". " + x.code + " - " + x.message);
                     return null;
                 })