Problema subiendo archivos con file_field

Hola a todos nuevamente!

Aqui estoy yo molestando con otro de mis problemas… resulta que esta
vez necesito que los usuarios suban archivos XLS al sistema, para esto
utilicé un tutorial que encontré en la web [1]. El problema esta cuando
sube los archivos, ya que si bien estos mantienen el nombre, el tipo y
el tamaño, al abrirlo siempre estan corruptos. La única excepción a esto
son los archivos de texto plano, los cuales se mentienen con todos los
datos originales. ¿Porque sucede esto? ¿Hay algo que declarar que yo no
haya declarado?

Desde ya muchas gracias por vuestra ayuda!!

[1]
http://www.myersds.com/notebook/2006/07/25/basic_file_uploads_with_rails

On Mon, Sep 15, 2008 at 5:07 PM, Juan R.
[email protected]wrote:

Hola a todos nuevamente!

Aqui estoy yo molestando con otro de mis problemas… resulta que esta
vez necesito que los usuarios suban archivos XLS al sistema, para esto
utilicé un tutorial que encontré en la web [1]. El problema esta cuando
sube los archivos, ya que si bien estos mantienen el nombre, el tipo y
el tamaño, al abrirlo siempre estan corruptos. La única excepción a esto
son los archivos de texto plano, los cuales se mentienen con todos los
datos originales. ¿Porque sucede esto? ¿Hay algo que declarar que yo no
haya declarado?

En caso de que estés en windows, podría ser por el modo de apertura del
fichero a la hora de guardarlo.
En la línea:

File.open(path, ‘w’) do |f|

Sustituye ‘w’ por ‘wb’, que es modo binario.

Un saludo,
Rodrigo.

Hola,

sube los archivos, ya que si bien estos mantienen el nombre, el tipo y
el tamaño, al abrirlo siempre estan corruptos. La única excepción a esto
son los archivos de texto plano, los cuales se mentienen con todos los

Cada vez que veas un comportamiento como ése, piensa que el problema
está en los ficheros binarios. En un porcentaje muy alto de los casos
el problema es que no estás abriendo el fichero en modo binario.

Además, creo que en algunos sistemas no es necesario abrirlo en binario
porque es el comportamiento por defecto pero en otros sí (windows)

cambia el modo de apertura de fichero ‘w’ por ‘wb’.

suerte,


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez

On Mon, Sep 15, 2008 at 5:07 PM, Juan R. [email protected]
wrote:

[1] http://www.myersds.com/notebook/2006/07/25/basic_file_uploads_with_rails

Un archivo XLS debe guardarse en modo binario en Windows:

File.open(path, ‘wb’) do |f|
f.write(data)
end

Un archivo en modo texto… depende del convenio de lo que sube. Si,
es un cristo.

Tengo por ahi un articulillo sobre saltos de linea que explica como
van estas cosas. Los ejemplos estan en Perl pero la teoria aplica a
Ruby exceptuando el hecho que en Ruby no existe el convenio para Macs
anteriores a Mac OS X:

Gracias a todos!! Ahora está funcionando a la perfección!!!

Xavier N. escribió:

Tengo por ahi un articulillo sobre saltos de linea que explica como
van estas cosas. Los ejemplos estan en Perl pero la teoria aplica a
Ruby exceptuando el hecho que en Ruby no existe el convenio para Macs
anteriores a Mac OS X:

Radar – O’Reillyhttp://www.onlamp.com/pub/a/onlamp/2006/08/17/understanding-newlines.html

Gracias por tus aportes

El 15 de septiembre de 2008 17:35, Juan R.
[email protected]escribió: