Hace unos días migramos un Moodle de un alojamiento a otro. Estas migraciones las hacemos constantemente, y no suele haber problemas.
Sin embargo está si que los dio: en el nuevo alojamiento las imágenes aparecían pixeladas, y verdes. En definitiva corruptas. Os mostramos un ejemplo.
Se podía también ver porque si entrabas en el backend y activabas el modo debug salían unos errores de visualicación de imagen donde indicaban que la imagen estaba dañada.
Además, si intentabas descargar la imagen desde el backend, no podías reproducirla.
Solución.
Las imágenes en Moodle están cifradas con un hash SH1. Puedes ver más información aquí: https://docs.moodle.org/dev/File_API_internals#File_API_internals
Esto lo hacen para que una imagen sólo tenga que guardarse una vez aunque se referencie muchas veces en el sitio, incluso con distinto nombre. Como se hace en el control de versiones de git, por ejemplo. Además, quiere decir que, entre otras cosas, se puede comprobar si un fichero está dañado o no con el comando sha1sum de Linux.
Pero, para el caso que nos ocupa, también quiere decir que no puede haber ninguna modificación en la transferencia de los archivos por FTP. Esto quiere decir, a modo práctico, que tienes que forzar en tu programa de FTP, por ejemplo en Filezilla, que la transferencia sea en modo Binario y no en Ascii o Auto. Los dos modos anteriores puede corromper las imágenes.
Para hacerlo en Filezilla sólo tienes que ir a Edición > Opciones > Transferencias > FTP: Tipos de archivo y en Tipo de transferencia predeterminada ponerlo en Binario.
Luego tienes que volver a descargar todas las imágenes de nuevo (el directorio data de Moodle) e importarlas otra vez. Verás que al hacerlo tendrás las imágenes sin corromper en el nuevo site.
Os recomendamos los siguientes productos relacionados con la informática: