Tipo di file .svg Errore nel caricamento dell'immagine Magento 2.3.1


8

Come consentire Tipi di file svg image upload magento 2

Mostra in system.log

main.ERROR: Unsupported image format. File:

/var/www/html/pub/media//logos_1.svg

c'è qualcosa che non va?
Savan Patel,


@mighty_hk sì, lo so ma non funziona per me
Savan Patel,

immagini dei prodotti ???
Rk Rathod,

Sei riuscito a caricare svg? Se sì, per favore fatemi sapere la soluzione
Zoya,

Risposte:


1

Questo modulo consente di caricare diversi tipi di file all'interno dell'editor WYSIWYG.

I seguenti tipi di file sono disponibili per impostazione predefinita ed è possibile aggiungere altri tipi di file ai tipi di file consentiti nella configurazione del modulo (Generale> Gestione dei contenuti> Opzioni WYSIWYG> Tipi di file extra consentiti):

Word (doc, docm, docx)

Excel (csv, xml, xls, xlsx)

PDF (pdf)

Compressed Folder (zip, tar)

https://github.com/experius/Magento-2-Module-Experius-WysiwygDownloads

È possibile modificare di.xml e aggiungere il codice seguente

<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 nel backend imposta ciò di cui hai bisogno in questo modo

inserisci qui la descrizione dell'immagine


Basta aggiungere il codice a di.xml o è necessario installare anche il plugin?
Zoya,

8

Il motivo per cui gli SVG sono disabilitati in Magento 2 per impostazione predefinita, è per motivi di sicurezza come l'XSS memorizzato. E consiglierei di lasciarli disabilitati almeno per ora fino a quando non avremo una migliore sanificazione per loro.

Puoi vedere un esempio di questo in APPSEC-1673, dove hanno rimosso gli SVG nella favicon

https://magento.com/security/patches/magento-2016-and-219-security-update

APPSEC-1673 Memorizzato xss usando immagini svg in Favicon.

Sebbene non sia possibile caricare SVG tramite il back-end, è comunque possibile caricarli con FTP e consultarli come se fossero stati caricati. In questo modo si ottengono comunque i vantaggi dell'utilizzo di SVG ma non è necessario affrontare i problemi di sicurezza di consentire agli utenti di caricarli.

Abilita il caricamento SVG per il caricamento Favicon / Logo

Ma se vuoi ancora abilitare il caricamento SVG per il caricamento favicon / logo. È possibile creare un modulo personalizzato e sovrascrivere i nodi xml / funzioni php da cui è stato rimosso. Puoi trovarli nel diff seguente

https://github.com/magento/magento2/compare/2.1.8...2.1.9

Abilita SVG altrove

A seconda di dove si desidera abilitare i caricamenti in formato SVG influirà su quali file è necessario sovrascrivere. Dovresti essere in grado di trovare i file che devi modificare con una rapida ricerca allowedExtensionsnei XMLfile o getAllowedExtensions setAllowedExtensionsnei PHPfile.


6

apri O sovrascrivi sotto il file e il codice <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 usi la versione 2.3 di magento sotto, cambia la silde di codice. Sostituisci sopra il codice <item name="svg" xsi:type="string">text/html</item>A<item name="svg" xsi:type="number">1</item>


non funziona ancora Convalida del file non riuscita. e menziono che uso la versione 2.3.1 di magento
Savan Patel il

5

Apri sotto il file

/vendor/magento/module-cms/etc/di.xml

Aggiungi la tua estensione che desideri consentire

<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>

Grazie Rakesh, ma non funziona ancora
Savan Patel,

@SavanPatel hai controllato il percorso del tuo tema questo file ha la precedenza? se sovrascrivi questo aggiornamento del codice nel file
Rakesh Donga,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.