Typ pliku .svg Błąd przesyłania obrazu Magento 2.3.1

8

Jak dozwolone typy plików svg upload obrazu magento 2

Pokaż w system.log

main.ERROR: Unsupported image format. File:

/var/www/html/pub/media//logos_1.svg
Savan Patel
źródło
czy coś jest nie tak?
Savan Patel
Proszę odnieść się do: magento.stackexchange.com/questions/142139/…
mighty_hk
@mighty_hk tak wiem, ale nie działa dla mnie
Savan Patel
zdjęcia produktów?
Rk Rathod
Czy udało Ci się przesłać plik SVG? Jeśli tak, daj mi znać rozwiązanie
Zoya

Odpowiedzi:

1

Ten moduł umożliwia przesyłanie różnych typów plików do edytora WYSIWYG.

Następujące typy plików są domyślnie dostępne i możliwe jest dodanie dodatkowych rodzajów plików do dozwolonych typów plików w konfiguracji modułu (Ogólne> Zarządzanie treścią> Opcje WYSIWYG> Dodatkowe dozwolone typy plików):

Word (doc, docm, docx)

Excel (csv, xml, xls, xlsx)

PDF (pdf)

Compressed Folder (zip, tar)

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

Możesz edytować di.xml i dodać następujący kod

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

a w backend ustaw to, czego potrzebujesz w ten sposób

wprowadź opis zdjęcia tutaj


źródło
Dodanie kodu wystarczy do di.xml, czy też jest wymagane zainstalowanie wtyczki?
Zoya
8

Powodem, dla którego SVG są domyślnie wyłączone w Magento 2, są względy bezpieczeństwa, takie jak przechowywany XSS. I zaleciłbym, aby na razie pozostawić je wyłączone, dopóki nie uzyskamy dla nich lepszej higieny.

Możesz zobaczyć przykład tego, w APPSEC-1673którym usunęli pliki SVG w ulubionych

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

APPSEC-1673 Przechowywane xss za pomocą obrazów svg w Favicon.

Chociaż nie możesz przesyłać plików SVG przez backend, nadal możesz przesyłać je za pomocą FTP i odwoływać się do nich tak, jakbyś je załadował. W ten sposób nadal zyskujesz korzyści z używania plików SVG, ale nie musisz zajmować się kwestiami bezpieczeństwa umożliwiającymi użytkownikom ich ładowanie.

Włącz przesyłanie SVG dla przesyłania Favicon / Logo

Ale jeśli nadal chcesz włączyć przesyłanie SVG dla przesyłania ulubionych / logo. Możesz utworzyć niestandardowy moduł i przesłonić funkcje węzłów xml / php, z których został usunięty. Możesz je znaleźć w różnicy poniżej

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

Włącz SVG w innym miejscu

W zależności od tego, gdzie chcesz włączyć przesyłanie SVG, wpłynie to na pliki, które musisz przesłonić. Powinieneś być w stanie znaleźć pliki, które chcesz edytować, poprzez szybkie wyszukiwanie allowedExtensionsw XMLplikach lub getAllowedExtensions setAllowedExtensionsw PHPplikach.

Sam
źródło
6

otwórz LUB zastąp nad plikiem i kodem <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>

Jeśli używasz poniżej wersji Magento 2.3, zmień kod silde. Zamień powyższy kod <item name="svg" xsi:type="string">text/html</item>na<item name="svg" xsi:type="number">1</item>

Shorabh
źródło
wciąż nie działa Sprawdzanie poprawności pliku nie powiodło się. i wspominam, że używam wersji Magento 2.3.1
Savan Patel
5

Otwórz poniżej pliku

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

Dodaj swoje rozszerzenie, na które chcesz zezwolić

<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>
Rakesh Donga
źródło
Dzięki Rakesh Ale wciąż nie działa
Savan Patel
@SavanPatel sprawdziłeś ścieżkę motywu, czy plik został zastąpiony? jeśli zostanie zastąpione, aktualizacja kodu nastąpi w pliku
Rakesh Donga