Tipo de arquivo .svg Erro no upload da imagem Magento 2.3.1


8

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

há algo errado?
Savan Patel


@mighty_hk sim, eu sei, mas não funciona para mim
Savan Patel

imagens do produto ???
Rk Rathod

Você conseguiu fazer upload de svg? Se sim, por favor deixe-me saber a solução
Zoya

Respostas:


1

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

insira a descrição da imagem aqui


Basta adicionar o código para di.xml ou é necessário instalar o plugin também?
Zoya

8

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.

Ativar upload de SVG para upload de Favicon / Logo

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

Ativar SVG em outro lugar

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 allowedExtensionsnos XMLarquivos ou getAllowedExtensions setAllowedExtensionsnos PHParquivos.


6

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>


ainda não está funcionando A validação do arquivo falhou. e eu mencionar i usar Magento 2.3.1 versão
Savan Patel

5

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>

Graças Rakesh Mas ainda não está funcionando
Savan Patel

@SavanPatel você verificou o caminho do tema que esse arquivo substitui? se override então esta atualização de código no arquivo
Rakesh Donga

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.