Pregunta

Me he encontrado un problema molesto con el Paperclip. Paperclip está trabajando muy bien para subir archivos jpg / gif pero se ahogo en .targa archivos con el error "no reconocido por identificar”. Sólo para confirmar, está funcionando al 100% con los archivos / GIF / PNG JPG y he instalado ImageMagick y de trabajo, este error se produce sólo con archivos .tga.

El proceso general para clip es:

  • usuario carga un archivo
  • archivo temporal se crea que contiene el contenido de ese archivo
  • El comando identificar se ejecuta en el archivo temporal para obtener el ancho / altura de la imagen.

Con png / jpg / gif, identificar se puede ejecutar en el archivo sin necesidad de una extensión válida (por ejemplo, .jpg) que sea capaz de reconocer el tipo de archivo. Sin embargo, cuando se identifica un archivo .tga, se requiere la extensión ".tga" en el nombre del archivo.

El problema es el siguiente:

Cuando Paperclip crea el archivo temporal, se crea con un nombre similar a: stream.0.1. Debido a que este tempfile carece de la extensión .tga, el identificar comando no puede analizar las dimensiones de la imagen, haciendo así que el "no reconocido por identificar”.

No estoy seguro de cómo hacer para arreglar esto, la mejor idea que se me ocurre es la de utilizar el comando normal File.new en lugar de Tempfile.new para crear el archivo temporal con un nombre aleatorio, pero el archivo correcto extensión. Esto requeriría también de parches en el código personalizado para eliminar los archivos después de la transformación que se ha hecho en lugar de confiar en la capacidad innata de Ruby eliminar TEMPFILES después de su uso.

¿Alguien tiene algunas ideas sobre el mejor método podría ir sobre la fijación de esto?

¿Fue útil?

Solución

Esto fue un error en el clip y se ha solucionado. Más detalles se pueden encontrar aquí:

http://groups.google.com/group/paperclip -plugin / browse_thread / hilo / 7fd7a8d7bab696a7

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top