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.