Tipo de archivo .svg Error en la carga de imágenes Magento 2.3.1

8

Cómo Permitir tipos de archivos svg image upload magento 2

Mostrar en system.log

main.ERROR: Unsupported image format. File:

/var/www/html/pub/media//logos_1.svg
Savan Patel
fuente
¿Hay algún problema?
Savan Patel
@mighty_hk sí, lo sé pero no funciona para mí
Savan Patel
imágenes de producto ???
Rk Rathod
¿Lograste subir svg? En caso afirmativo, hágamelo saber la solución
Zoya

Respuestas:

1

Este módulo permite cargar diferentes tipos de archivos dentro del editor WYSIWYG.

Los siguientes tipos de archivo están disponibles de forma predeterminada y es posible agregar tipos de archivo adicionales a los tipos de archivo permitidos en la configuración del módulo (General> Administración de contenido> Opciones WYSIWYG> Tipos de archivo permitidos adicionales):

Word (doc, docm, docx)

Excel (csv, xml, xls, xlsx)

PDF (pdf)

Compressed Folder (zip, tar)

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

Puede editar di.xml y agregar el siguiente código

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

y en el backend establece lo que necesitas así

ingrese la descripción de la imagen aquí


fuente
Simplemente agregar el código es suficiente para di.xml o ¿también es necesario instalar el complemento?
Zoya
8

La razón por la cual los SVG están deshabilitados en Magento 2 de manera predeterminada es por razones de seguridad, como XSS almacenado. Y recomendaría que los deje deshabilitados al menos por ahora hasta que obtengamos una mejor desinfección para ellos.

Puede ver un ejemplo de esto en APPSEC-1673, donde eliminaron SVG en el favicon

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

APPSEC-1673 Xss almacenado usando imágenes svg en Favicon.

Si bien no puede cargar SVG a través del back-end, aún puede cargarlos con FTP y hacer referencia a ellos como si los hubiera cargado. De esta manera, aún obtiene los beneficios de usar SVG, pero no tiene que lidiar con los problemas de seguridad de permitir que los usuarios los carguen.

Habilitar la carga SVG para la carga de Favicon / Logo

Pero si aún desea habilitar la carga SVG para la carga de favicon / logo. Puede crear un módulo personalizado y anular funciones de nodos xml / php de donde se eliminó. Puede encontrarlos en la diferencia a continuación.

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

Habilitar SVG en otro lugar

Dependiendo de dónde desee habilitar las cargas SVG afectará los archivos que deberá anular. Debería poder encontrar los archivos que necesita editar mediante una búsqueda rápida allowedExtensionsen XMLarchivos o getAllowedExtensions setAllowedExtensionsen PHParchivos.

Sam
fuente
6

abrir O sobrescribir debajo del archivo y código <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 usa la versión 2.3 de magento a continuación, cambie el código silde. Reemplace el código anterior <item name="svg" xsi:type="string">text/html</item>a<item name="svg" xsi:type="number">1</item>

Shorabh
fuente
todavía no funciona La validación del archivo falló. y menciono que uso la versión magento 2.3.1
Savan Patel
5

Abrir debajo del archivo

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

Agregue la extensión que desea permitir

<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
fuente
Gracias Rakesh Pero aún no funciona
Savan Patel
@SavanPatel, ¿ha verificado la ruta del tema que anula este archivo? si se anula, esta actualización de código en el archivo
Rakesh Donga