Тип файла .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-WysiwygDownloads

Вы можете отредактировать 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 / Загрузка логотипа

Но если вы все еще хотите включить загрузку SVG для загрузки значка / логотипа. Вы можете создать собственный модуль и переопределить функции узлов xml / php, из которых он был удален. Вы можете найти их в diff ниже

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, измените код. Заменить приведенный выше код <item name="svg" xsi:type="string">text/html</item>на<item name="svg" xsi:type="number">1</item>


все еще не работает Проверка файла не удалась. и я упоминаю, что я использую версию
Savan Patel

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.