La opción más simple que encontré fue utilizar el plugin rails-ckeditor, que integra la funcionalidad de subida de imágenes de una forma bastante elegante usando SWFUpload.
Como siempre, en local funcionaba todo perfectamente, pero al instalar en la máquina de integración dio un poco de guerra.
Para empezar, el primer problema fue con la versión de RMagick, instalando la última versión disponible (2.13.1) me daba un bonito error
Updating installed gems
Updating rmagick
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
...
checking for ImageMagick version >= 6.4.9... no
Can't install RMagick 2.13.1. You must have ImageMagick 6.4.9 or later.
El problema es que la máquina de integración tiene Ubuntu Hardy, y la versión de ImageMagick de Hardy es la 6.3.7:
$ convert -version
Version: ImageMagick 6.3.7 06/04/09 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC
Version: ImageMagick 6.3.7 06/04/09 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC
Así que mirando en github las dependencias de la Rmagick en el fichero extconf.rb se encuentra que la última versión que se puede usar es la 2.12.2, actualizamos bundler y instalación superada.
El siguiente problema aparece al probar la subida de imágenes y ver que da simplemente un alert de javascript, a veces con un 401 y otras con un 2038 sin ninguna más información.
Mirando en el log de apache se encuentra el error
84.79.196.203 - - [11/Nov/2010:11:16:03 +0100] "POST /es/ckeditor/create/image?.... HTTP/1.1" 401 350 "-" "Shockwave Flash"
El problema es debido al Flash de subida de imágenes, que no es capaz de gestionar la autentificación básica del servidor de integración y da un Unathorized.
La solución, permitir el acceso a esa carpeta del servidor de integración en Apache añadiendo en el virtual host
<Location /*/ckeditor/create/image*>
Satisfy Any
Allow from all
</Location>
El * porque utilizamos el plugin routing filter para gestionar el multilenguaje.
Y con estos dos pequeños cambios, prueba superada. Aquí lo dejo por si a alguien le sirve de ayuda....
No hay comentarios:
Publicar un comentario