Ant Peacocke
2006-May-04 10:48 UTC
[Rails] File Upload problem when file is small, under 19k(read method returns nothing)
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 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
2006-May-20 10:01 UTC
[Rails] File Upload problem when file is small, under 19k(read method returns nothing)
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
Al Evans
2006-May-20 12:18 UTC
[Rails] Re: File Upload problem when file is small, under 19k(read m
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 -- Posted via http://www.ruby-forum.com/.
Ant Peacocke
2006-May-20 16:57 UTC
[Rails] Re: File Upload problem when file is small, under 19k(read m
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:> 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 > >-- Ant Peacocke www.levelsystems.net T: + 33 (0) 8 70 46 63 37 M: + 33 (0) 6 09 81 06 00