Тип файлу .svg Помилка завантаження зображення Magento 2.3.1


8

Як дозволити типи файлів svg завантаження зображення magento 2

Показати в system.log

main.ERROR: Unsupported image format. File:

/var/www/html/pub/media//logos_1.svg

щось не так?
Саван Патель

Будь ласка, зверніться до: magento.stackexchange.com/questions/142139/…
mighty_hk

@mighty_hk так, я знаю, але не працюю для мене
Саван Патель

зображення товарів ???
Rk Rathod

Вам вдалося завантажити svg? Якщо так, будь ласка, повідомте мені про рішення
Зоя,

Відповіді:


1

Цей модуль дає можливість завантажувати різні файли у WYSIWYG-редактор.

Наступні файли доступні за замовчуванням, і можна додати додаткові файли до дозволених типів файлів у конфігурації модуля (Загальне> Управління вмістом> Опції WYSIWYG> Дозволені типи файлів):

Word (doc, docm, docx)

Excel (csv, xml, xls, xlsx)

PDF (pdf)

Compressed Folder (zip, tar)

https://github.com/experius/Magento-2-Module-Experius-WysiwygЗавантаження

Ви можете відредагувати di.xml та додати наступний код

<item name="allowed" xsi:type="array">
    <item name="svg" xsi:type="string">image/svg</item> 
</item>

<item name="image_allowed" xsi:type="array">
    <item name="svg" xsi:type="string">image/svg</item>
</item>

<item name="media_allowed" xsi:type="array">
    <item name="svg" xsi:type="string">image/svg</item>
</item>

а в бекенді встановіть те, що вам потрібно

введіть тут опис зображення


Для додавання коду достатньо лише di.xml або він також потрібен для установки плагіна?
Зоя

8

Причина SVG відключена в Magento 2 за замовчуванням, це з міркувань безпеки, таких як збережений XSS. І я рекомендую поки що покинути їх непрацездатними, поки ми не покращимо їх санітарію.

Ви можете побачити приклад цього в APPSEC-1673, де вони видалили SVG-файли у фавіконі

https://magento.com/security/patches/magento-2016-and-219-security-update

APPSEC-1673 Зберігається xss, використовуючи SVG-зображення у Favicon.

Хоча ви не можете завантажити SVG-файли через бекенд, ви все одно можете завантажувати їх за допомогою FTP і посилатись на них, як якщо б ви їх завантажували. Таким чином, ви все ще отримуєте переваги використання SVG, але вам не доведеться боротися з проблемами безпеки, що дозволяють користувачам завантажувати їх.

Увімкнути завантаження SVG для завантаження Favicon / Logo

Але якщо ви все ще хочете включити завантаження SVG для завантаження файлів favicon / logo. Ви можете створити спеціальний модуль і змінити xml-вузли / функції php, з яких він був видалений. Ви можете знайти їх у розрізі нижче

https://github.com/magento/magento2/compare/2.1.8...2.1.9

Увімкніть SVG в іншому місці

Залежно від того, де потрібно ввімкнути завантаження SVG, впливатиме на те, які файли потрібно буде замінити. Ви повинні мати можливість знайти файли, які потрібно редагувати, шляхом швидкого пошуку allowedExtensionsу XMLфайлах або getAllowedExtensions setAllowedExtensionsв PHPфайлах.


6

відкрити АБО перезаписати нижче файл та код <item name="svg" xsi:type="string">text/html</item>

/vendor/magento/module-cms/etc/di.xml

<type name="Magento\Cms\Model\Wysiwyg\Images\Storage">
    <arguments>
        <argument name="extensions" xsi:type="array">
            <item name="allowed" xsi:type="array">
                ......
                <item name="svg" xsi:type="string">text/html</item>
                ......
            </item>
            <item name="image_allowed" xsi:type="array">
                ......
                <item name="svg" xsi:type="string">text/html</item>
                ......
            </item>
            <item name="media_allowed" xsi:type="array">
                ......
                <item name="svg" xsi:type="string">text/html</item>
                ......
            </item>
        </argument>
    </arguments>
</type>

Якщо ви користуєтеся версією magento 2.3 нижче, зміни коду silde. Замініть вище код <item name="svg" xsi:type="string">text/html</item>на<item name="svg" xsi:type="number">1</item>


ще не працює перевірка файлів не вдалася. і я згадую, що я використовую версію magento 2.3.1
Саван Патель

5

Відкрити файл нижче

/vendor/magento/module-cms/etc/di.xml

Додайте розширення, яке ви хочете дозволити

<item name="svg" xsi:type="number">1</item>

<argument name="extensions" xsi:type="array">
    <item name="allowed" xsi:type="array">
        <item name="jpg" xsi:type="number">1</item>
        <item name="jpeg" xsi:type="number">1</item>
        <item name="png" xsi:type="number">1</item>
        <item name="gif" xsi:type="number">1</item>
        <item name="svg" xsi:type="number">1</item>
    </item>
    <item name="image_allowed" xsi:type="array">
        <item name="jpg" xsi:type="number">1</item>
        <item name="jpeg" xsi:type="number">1</item>
        <item name="png" xsi:type="number">1</item>
        <item name="gif" xsi:type="number">1</item>
    </item>
    <item name="media_allowed" xsi:type="array">
        <item name="flv" xsi:type="number">1</item>
        <item name="swf" xsi:type="number">1</item>
        <item name="avi" xsi:type="number">1</item>
        <item name="mov" xsi:type="number">1</item>
        <item name="rm" xsi:type="number">1</item>
        <item name="wmv" xsi:type="number">1</item>
    </item>
</argument>

Дякую Ракеш, але все ще не працює
Саван Пател

@SavanPatel Ви перевірили шлях до теми, який цей файл замінює? якщо перевизначити, то це оновлення коду у файлі
Ракеш Донга

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.