Hi
I hope someone can shed some light on this have searched a lot but found
nothing definite. This happens on Ubuntu and Fedora 2.
I am having a problem with uploading small files (images gif or jpeg
under 19k).
According to ruby documentation these are stored temporarily as StringIO
objects rather than temporary files (as is done with the larger file
uploads).
The problem is that when it is a StringIO rather than a temporary file
(ie a file smaller than 19k) nothing is returned from the read method.
example code where “image” is the file upload form parameter, it works
fine if image is over round 19k but is it is smaller then image.read
returns nothing however the image.size and image.original_filename
return the correct information.
File.open(path_to_save_file, “wb”) {|f| f.write(image.read) }
All the best
Ant
–
Ant Peacocke
www.levelsystems.net
T: + 33 (0) 8 70 46 63 37
M: + 33 (0) 6 09 81 06 00
Ant Peacocke wrote:
example code where “image” is the file upload form parameter, it works
fine if image is over round 19k but is it is smaller then image.read
returns nothing however the image.size and image.original_filename
return the correct information.
File.open(path_to_save_file, “wb”) {|f| f.write(image.read) }
I haven’t seen this myself, so I’m puzzled.
Have you tried doing image.rewind before trying to read the image
IOString?
–Al Evans
Many thanks Al
that fixed the problem, by putting image.rewind before image.read it now
reads the file contents regardless of whether they are small or large.
eg.
image.rewind
File.open(path_to_save_file, “wb”) {|f| f.write(image.read) }
Thanks again Ant
Al Evans wrote:
I haven’t seen this myself, so I’m puzzled.
Have you tried doing image.rewind before trying to read the image
IOString?
–Al Evans
–
Ant Peacocke
www.levelsystems.net
T: + 33 (0) 8 70 46 63 37
M: + 33 (0) 6 09 81 06 00