La carga de imágenes de Magento no funciona incluso después de otorgar permisos a todas las carpetas 777

9

No puedo cargar imágenes en el panel de administración de magento, obtengo el error "La carpeta de destino no se puede escribir o no existe". Recientemente moví todos los archivos de un hosting a otro. ¿Alguna solución para esto?

usuario3164549
fuente
¿Qué tipo de paquete de alojamiento tienes? Si incluye soporte, puede valer la pena preguntarles sobre los permisos actuales.
David Manners
Tenemos dos sitios web alojados en el mismo servidor y tenemos todos los permisos para cargar un archivo y aunque los archivos no se
carguen

Respuestas:

16

En su proyecto, abra el archivo lib/Varien/File/Uploader.phpy coloque Mage::log()dentro de la save()función.

public function save($destinationFolder, $newFileName = null)
{
    $this->_validateFile();

    if ($this->_allowCreateFolders) {
        $this->_createDestinationFolder($destinationFolder);
    }

    if (!is_writable($destinationFolder)) {
        // Put a mage::log() and check what is the folder magento is looking for.
        Mage::log($destinationFolder);
        throw new Exception('Destination folder is not writable or does not exists.');
    }
    ...
}

Desde el registro puede encontrar la carpeta que Magento está buscando. Y luego verifique los permisos para esa carpeta.

Sukeshini
fuente
55
Muchas gracias, me olvidé de dar permiso de archivo a Media / tmp / category / product, y después de dar permiso de archivo a esa carpeta, el problema se resolvió
usuario3164549
2
Me alegra saber que su problema fue resuelto. Si esto fue útil para resolver el problema, márquelo como la respuesta.
Sukeshini
5

Magento 2

Me sale el mismo error en Magento 2, y este es el archivo de donde proviene el error en este caso:

vendor/magento/framework/File/Uploader.php

En línea 256, puede colocar temporalmente este código para obtener la carpeta no escribible / inexistente:

if( !is_writable($destinationFolder) ) {
    // throw new Exception('Destination folder is not writable or does not exists.');
    throw new Exception($destinationFolder);
} 

De lo contrario, verifique si estas carpetas existen y el servidor web puede escribirlas:

  • pub/media/catalog/
  • pub/media/catalog/category
  • pub/media/catalog/product
  • pub/media/images
  • pub/media/wysiwyg/
Andrea
fuente
3

Para mi el problema se resolvió haciendo

pub / media / tmp

escribible por el servidor web

Las siguientes carpetas en el directorio "pub / media" también se pueden escribir

- banners
- catalog
- images
- wysiwyg
Eliut Islas
fuente
3

Por lo que vale, he tenido este problema varias veces y he olvidado que generalmente es el archivo de imagen en sí, no el servidor después de verificar los permisos y todo eso. Todavía no cargaría la imagen porque era demasiado grande, ya sea en dimensiones o en tamaño de archivo.

Las soluciones para mí son:

  • Reduzca la escala de una foto de ALTA REZ antes de cargarla.

  • Aumente la resolución máxima de magento o cargue la imagen System > Catalog > Product Image

  • aumente el límite de tamaño de archivo PHP de su servidor con .htaccess o config vea: /programming/6292687/upload-6-mb-image-in-magento
asherrard
fuente
2

Asegúrese de que la carpeta de medios media / tmp / catalog / product exista "y haga que su servidor web pueda escribir ese directorio"

Altravista
fuente
En lugar de establecer el permiso para 777, es mejor decir "y hacer que su servidor web pueda escribir ese directorio". La idea es que no hay necesidad de otorgar a cada usuario acceso de escritura solo para que su servidor web pueda escribir imágenes. (No soy el que votó en contra, pero por si te lo preguntabas, esta es probablemente la razón)
Dan
sí, por supuesto;)
Altravista
2

Compruebe amablemente la carpeta de medios con permiso 777. Si está habilitado, el modo de compilación significa que también incluye la carpeta con permiso 777 .

Después de dar permiso 777 a esas carpetas, el problema se resolvió por mí.

Pasupathi Thangavel
fuente
0

Puede ser el certificado vencido de la administración de Plesk (fue mi caso).

Intenté los pasos anteriores, pero no funcionó. Desde allí intenté acceder a los archivos a través de FileZilla para otorgar los permisos a la vez a todas las carpetas, de ahí un mensaje de error sobre el certificado caducado. No es el certificado SSL de la tienda en sí, sino la administración de Plesk. Creé un nuevo certificado autofirmado, apliqué su administración Plesk y todo volvió a la normalidad.

Esto funcionó para mí. Os dejo aquí mi aportación.

Buena suerte

Cledson Silva
fuente
0

Hay un error en Magento para cargar archivos cuando su DocumentRoot de magento en vhost está configurado correctamente para

/path/to/magento/pub

En lugar de (en desuso)

/path/to/magento

El cargador intenta crear archivos en

/path/to/magento/pub/pub/your_upload_dir

Tenga en cuenta que la ubicación pub va dos veces. Dijeron que lo solucionarán en 2.2.0+ pero en 2.2.1 este problema aún aparece.

A.Maksymiuk
fuente