Como permitir tipos de arquivo svg image upload magento 2
Mostrar no system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
Como permitir tipos de arquivo svg image upload magento 2
Mostrar no system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
Respostas:
Este módulo possibilita o upload de diferentes tipos de arquivos dentro do editor WYSIWYG.
Os seguintes tipos de arquivos estão disponíveis por padrão e é possível adicionar tipos de arquivos extras aos tipos de arquivos permitidos na configuração do módulo (Geral> Gerenciamento de conteúdo> Opções WYSIWYG> Tipos de arquivos extra permitidos):
Word (doc, docm, docx)
Excel (csv, xml, xls, xlsx)
PDF (pdf)
Compressed Folder (zip, tar)
https://github.com/experius/Magento-2-Module-Experius-WysiwygDownloads
Você pode editar o di.xml e adicionar o código a seguir
<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>
e no back-end defina o que você precisa assim
A razão pela qual os SVGs estão desativados no Magento 2 por padrão é por motivos de segurança, como o XSS armazenado. E eu recomendaria que você os deixasse desabilitados pelo menos por enquanto até termos uma melhor higienização para eles.
Você pode ver um exemplo disso APPSEC-1673
, onde eles removeram SVGs no favicon
https://magento.com/security/patches/magento-2016-and-219-security-update
APPSEC-1673
Xss armazenado usando imagens svg no Favicon.
Embora não seja possível fazer upload de SVGs pelo back-end, você ainda pode enviá-los com FTP e referenciá-los como se os tivesse carregado. Dessa forma, você ainda obtém os benefícios do uso de SVGs, mas não precisa lidar com os problemas de segurança ao permitir que os usuários os carreguem.
Mas se você ainda deseja ativar o upload de SVG para o upload de favicon / logo. Você pode criar um módulo personalizado e substituir as funções xml nodes / php de onde foi removido. Você pode encontrá-los no diff abaixo
https://github.com/magento/magento2/compare/2.1.8...2.1.9
Dependendo de onde você deseja habilitar os envios de SVG, os arquivos serão substituídos. Você deve encontrar os arquivos que precisa editar, procurando rapidamente allowedExtensions
nos XML
arquivos ou getAllowedExtensions
setAllowedExtensions
nos PHP
arquivos.
abrir OU substituir sob o arquivo e o código <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>
Se você usa a versão abaixo do magento 2.3, altere o código silde. Substitua o código acima <item name="svg" xsi:type="string">text/html</item>
Para<item name="svg" xsi:type="number">1</item>
Abrir arquivo abaixo
/vendor/magento/module-cms/etc/di.xml
Adicione sua extensão que você deseja permitir
<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>
Plug-in para permitir arquivos SVG para imagens de produtos