Как разрешить типы файлов svg для загрузки изображений magento 2
Показать в system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
Как разрешить типы файлов svg для загрузки изображений magento 2
Показать в system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
Ответы:
Этот модуль позволяет загружать различные типы файлов внутри 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>
и в бэкэнде установите то что вам нужно вот так
Причина, по которой 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 для загрузки значка / логотипа. Вы можете создать собственный модуль и переопределить функции узлов xml / php, из которых он был удален. Вы можете найти их в diff ниже
https://github.com/magento/magento2/compare/2.1.8...2.1.9
В зависимости от того, где вы хотите включить загрузку SVG, будет зависеть, какие файлы вам нужно переопределить. Вы сможете найти файлы, которые нужно отредактировать, путем быстрого поиска allowedExtensions
в XML
файлах или getAllowedExtensions
setAllowedExtensions
в PHP
файлах.
открыть или переписать ниже файл и код <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>
Открыть файл ниже
/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>
Плагин для разрешения файлов SVG для изображений продуктов