Saltar al contenido

Magento 2 no puede cargar imágenes de productos

este problema se puede solucionar de diversas maneras, pero nosotros te compartimos la respuesta más completa en nuestra opinión.

Solución:

Resuelto

Este error puede deberse a varios problemas de configuración del servidor. Cada error siempre se presentará con la misma advertencia genérica de Magento 2: Atención: no reconocemos ni admitimos este tipo de extensión de archivo. Si usa Magento 2.2.0+, el error puede estar redactado de manera diferente. A continuación se muestran las configuraciones de servidor más comunes que están causando este error. Puede haber más que esta lista, pero estos son todos los que he probado personalmente.

1) Problema de permiso

Puede obtener un error en las líneas de "Can not create directory pub/media/tmp" o puede notar después de examinar el resumen XHR en las herramientas de desarrollo que se devuelve un código de éxito 200 pero no se guardaron datos en el servidor. La forma más fácil de probar esto es verificar los permisos de sus servidores y asegurarse de que todos los directorios, especialmente todo lo que se encuentra debajo de pub/media, sea 755. Es posible que también tenga una combinación de los siguientes problemas, así que no deje de solucionar los permisos hasta que los verifique también. .

2) Permisos de escritura faltantes para cargar directorio / Directorio faltante

PHP necesita usar el directorio de carga temporal del servidor al cargar archivos al servidor. Asegúrese de que su servidor tenga una configuración de directorio de carga temporal y que el usuario de Magento pueda escribir; cualquiera que sea el usuario que esté utilizando para su sitio web de Magento. La mayoría de los proveedores de alojamiento tienen esta configuración para usted, pero algunos pueden bloquear esta función o pueden no tener una configuración predeterminada. Los servidores privados a veces dependen de que usted elija el directorio de carga temporal por dominio y luego, por defecto, una ubicación genérica si no pudo elegir una. Busque en su php.ini (phpinfo) upload_tmp_dir. Ningún valor significa que el servidor usará el valor predeterminado si puede encontrar alguno.

3) Tamaño de archivo máximo y tamaño de archivo de publicación insuficientes

En su archivo php.ini necesita configurar correctamente su upload_max_filesize y post_max_size. Si alguna imagen o cualquier carga de imágenes excede esta configuración, obtendrá el error del OP. Recuerda esta regla:

post_max_size debe ser >= upload_max_filesize

También tenga en cuenta que su proveedor de alojamiento web probablemente no le advertirá si ingresó un valor incorrecto aquí. Podría escribir mal el valor o elegir un tamaño que el servidor web no permita. Prueba para esto.

4) Falta la extensión PHP GD (procesamiento de imágenes)

Deberías haber recibido una advertencia durante la instalación si te faltaba esta extensión pero Las actualizaciones de PHP en su servidor podrían haberlo deshabilitado. La forma más rápida de verificar esta configuración es revisar la impresión de phpinfo(), pero puede buscarla en cPanel o en su aprovisionamiento de Apache/PHP en un servidor Apache.

5) Falta la extensión PHP ImageMagick (procesamiento de imágenes)

A partir de Magento 2.2.0+, a Magento también le gustaría usar ImageMagick. La documentación no está clara, pero parece que puede usar una o ambas extensiones de PHP. Si actualiza o instala PHP 7+ en su servidor, existe la posibilidad de que deshabilite GB y habilite ImageMagick dependiendo de cómo esté aprovisionando su servidor. Simplemente verifique que uno, si no ambos, esté habilitado y funcione correctamente.

Guión de prueba

El siguiente es un script PHP que puede usar para probar algunos de estos problemas. Haga un formulario HTML simple con un campo de entrada de archivo llamado upfile y configure la acción del formulario para enviar a donde sea que coloque este script en su servidor. Tendrás que crear un uploads directorio en el mismo directorio que este script. No es mi código, fue publicado originalmente en el Manual de PHP por CertaiN.

 1000000) 
    throw new RuntimeException('Exceeded filesize limit.');


// DO NOT TRUST $_FILES['upfile']['mime'] VALUE !!
// Check MIME Type by yourself.
$finfo = new finfo(FILEINFO_MIME_TYPE);
if (false === $ext = array_search(
    $finfo->file($_FILES['upfile']['tmp_name']),
    array(
        'jpg' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
    ),
    true
)) 
    throw new RuntimeException('Invalid file format.');


// You should name it uniquely.
// DO NOT USE $_FILES['upfile']['name'] WITHOUT ANY VALIDATION !!
// On this example, obtain safe unique name from its binary data.
if (!move_uploaded_file(
    $_FILES['upfile']['tmp_name'],
    sprintf('./uploads/%s.%s',
        sha1_file($_FILES['upfile']['tmp_name']),
        $ext
    )
)) 
    throw new RuntimeException('Failed to move uploaded file.');


echo 'File is uploaded successfully.';

 catch (RuntimeException $e) 

echo $e->getMessage();



?>

En mi caso, necesito habilitar la extensión fileinfo para PHP para que funcione. Si deshabilito la extensión fileinfo, generará este error nuevamente. Estoy usando php 7.2, versión comunitaria Magento 2.3.3.

lo arreglé en cPanel > Extensiones del selector de PHP cuando tuve el mismo error:

  1. Seleccionar gd
  2. Seleccionar xsl

Luego intenté subir imágenes nuevamente y este error ya no está.

ingrese la descripción de la imagen aquí

Si posees alguna sospecha y capacidad de medrar nuestro sección te proponemos ejecutar una interpretación y con placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *