Type de fichier .svg Erreur de téléchargement d'image Magento 2.3.1


8

Comment autoriser les types de fichiers svg image upload magento 2

Afficher dans system.log

main.ERROR: Unsupported image format. File:

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

y a-t-il quelque chose qui ne va pas?
Savan Patel


@mighty_hk oui je sais mais ne travaille pas pour moi
Savan Patel

images du produit ???
Rk Rathod

Avez-vous réussi à télécharger des fichiers svg? Si oui, faites-moi savoir la solution
Zoya

Réponses:


1

Ce module permet de télécharger différents types de fichiers à l'intérieur de l'éditeur WYSIWYG.

Les types de fichiers suivants sont disponibles par défaut et il est possible d'ajouter des types de fichiers supplémentaires aux types de fichiers autorisés dans la configuration du module (Général> Gestion de contenu> Options WYSIWYG> Types de fichiers supplémentaires autorisés):

Word (doc, docm, docx)

Excel (csv, xml, xls, xlsx)

PDF (pdf)

Compressed Folder (zip, tar)

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

Vous pouvez modifier di.xml et ajouter le code suivant

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

et en backend, définissez ce dont vous avez besoin comme ceci

entrez la description de l'image ici


Il suffit d'ajouter le code à di.xml ou est-il également nécessaire d'installer le plugin?
Zoya

8

La raison pour laquelle les SVG sont désactivés dans Magento 2 par défaut, est pour des raisons de sécurité telles que XSS stockées. Et je recommanderais que vous les laissiez handicapés au moins pour l'instant jusqu'à ce que nous obtenions une meilleure désinfection pour eux.

Vous pouvez voir un exemple de cela dans APPSEC-1673, où ils ont supprimé les SVG dans le favicon

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

APPSEC-1673 Xss stocké à l'aide d'images svg dans Favicon.

Bien que vous ne puissiez pas télécharger de SVG via le backend, vous pouvez toujours les télécharger avec FTP et les référencer comme si vous les aviez téléchargés. De cette façon, vous bénéficiez toujours des avantages de l'utilisation des SVG, mais vous n'avez pas à gérer les problèmes de sécurité liés à l'autorisation des utilisateurs de les charger.

Activer le téléchargement SVG pour le téléchargement Favicon / Logo

Mais si vous souhaitez toujours activer le téléchargement SVG pour le téléchargement de favicon / logo. Vous pouvez créer un module personnalisé et remplacer les nœuds xml / fonctions php d'où il a été supprimé. Vous pouvez les trouver dans le diff ci-dessous

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

Activer SVG ailleurs

Dépendre de l'endroit où vous souhaitez activer les téléchargements SVG affectera les fichiers que vous devrez remplacer. Vous devriez être en mesure de trouver les fichiers que vous devez modifier par une recherche rapide allowedExtensionsdans les XMLfichiers ou getAllowedExtensions setAllowedExtensionsdans les PHPfichiers.


6

OU OU écraser le fichier et le code ci-dessous <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>

Si vous utilisez la version ci-dessous de magento 2.3, changez le code silde. Remplacer le code ci - dessus <item name="svg" xsi:type="string">text/html</item>Pour<item name="svg" xsi:type="number">1</item>


ne fonctionne toujours pas La validation du fichier a échoué. et je mentionne que j'utilise la version magento 2.3.1
Savan Patel

5

Ouvrir sous le fichier

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

Ajoutez votre extension que vous souhaitez autoriser

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

Merci Rakesh Mais ne fonctionne toujours pas
Savan Patel

@SavanPatel vous avez vérifié le chemin de votre thème, cette substitution de fichier? en cas de remplacement, cette mise à jour du code dans le fichier
Rakesh Donga

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.