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

Shorabh
источник
все еще не работает Проверка файла не удалась. и я упоминаю, что я использую версию
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 Вы проверили путь к теме, этот файл переопределить? если переопределить, то это обновление кода в файле
Ракеш Донга