Dateityp .svg Fehler beim Hochladen des Bildes Magento 2.3.1


8

Zulässige Dateitypen SVG-Bild Upload Magento 2

In system.log anzeigen

main.ERROR: Unsupported image format. File:

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

Ist etwas falsch?
Savan Patel


@mighty_hk ja ich weiß, aber nicht für mich arbeiten
Savan Patel

Produktbilder ???
Rk Rathod

Hast du es geschafft, svg hochzuladen? Wenn ja, lassen Sie mich bitte die Lösung wissen
Zoya

Antworten:


1

Dieses Modul ermöglicht das Hochladen verschiedener Dateitypen im WYSIWYG-Editor.

Die folgenden Dateitypen sind standardmäßig verfügbar und es ist möglich, den zulässigen Dateitypen in der Konfiguration des Moduls zusätzliche Dateitypen hinzuzufügen (Allgemein> Inhaltsverwaltung> WYSIWYG-Optionen> Zusätzliche zulässige Dateitypen):

Word (doc, docm, docx)

Excel (csv, xml, xls, xlsx)

PDF (pdf)

Compressed Folder (zip, tar)

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

Sie können di.xml bearbeiten und folgenden Code hinzufügen

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

und im Backend einstellen, was Sie so brauchen

Geben Sie hier die Bildbeschreibung ein


Nur das Hinzufügen des Codes reicht zu di.xml oder ist es auch erforderlich, das Plugin zu installieren?
Zoya

8

Der Grund, warum SVGs in Magento 2 standardmäßig deaktiviert sind, liegt in Sicherheitsgründen wie gespeichertem XSS. Und ich würde empfehlen, dass Sie sie zumindest vorerst deaktiviert lassen, bis wir eine bessere Desinfektion für sie erhalten.

Sie können ein Beispiel dafür in sehen APPSEC-1673, wo sie SVGs im Favicon entfernt haben

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

APPSEC-1673 Gespeichertes xss mit svg-Bildern in Favicon.

Sie können SVGs zwar nicht über das Backend hochladen, aber Sie können sie dennoch mit FTP hochladen und auf sie verweisen, als hätten Sie sie hochgeladen. Auf diese Weise erhalten Sie immer noch die Vorteile der Verwendung von SVGs, müssen sich jedoch nicht mit den Sicherheitsproblemen befassen, die entstehen, wenn Benutzer diese laden können.

Aktivieren Sie den SVG-Upload für den Favicon / Logo-Upload

Wenn Sie den SVG-Upload dennoch für den Favicon / Logo-Upload aktivieren möchten. Sie können ein benutzerdefiniertes Modul erstellen und XML-Knoten / PHP-Funktionen überschreiben, aus denen es entfernt wurde. Sie finden diese im Diff unten

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

Aktivieren Sie SVG an anderer Stelle

Abhängig davon, wo Sie SVG-Uploads aktivieren möchten, wirkt sich dies darauf aus, welche Dateien Sie überschreiben müssen. Sie sollten in der Lage sein, die Dateien, die Sie bearbeiten müssen, durch eine schnelle Suche allowedExtensionsin XMLDateien oder entweder getAllowedExtensions setAllowedExtensionsin PHPDateien zu finden.


6

Öffnen oder überschreiben Sie die Datei und den Code <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>

Wenn Sie die unten stehende Version Magento 2.3 verwenden, ändern Sie den Code silde. Ersetzen Sie den obigen Code <item name="svg" xsi:type="string">text/html</item>To<item name="svg" xsi:type="number">1</item>


funktioniert immer noch nicht Dateiüberprüfung fehlgeschlagen. und ich erwähne, ich benutze Magento 2.3.1 Version
Savan Patel

5

Öffnen Sie die folgende Datei

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

Fügen Sie Ihre Erweiterung hinzu, die Sie zulassen möchten

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

Danke Rakesh Aber funktioniert immer noch nicht
Savan Patel

@SavanPatel Sie haben Ihren Themenpfad überprüft, den diese Datei überschreibt? Wenn überschreiben, dann dieses Code-Update in der Datei
Rakesh Donga

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.