Hi list,
I'm having a headache with file upload in rails..
In short, the problem boils down to the upload form giving me a String containing the file name of the uploaded file instead of the IO object it should give me to access the file's content and MIME type.
I have checked http://railsforum.com/viewtopic.php?id=4642&p=1 and Peak Obsession, but the problem seems not to occur there... I also have spent quite some time searching google and this list on this issue, but nothing that succeeded to enlighten me came up..
I'm using rails v. 1.2.1.
I have a view with a file upload form:
<% form_tag :action => 'create', :multipart => true do %> <%= file_field('photo', 'uploaded_file') %> <%= submit_tag "Create" %> <% end %>
Which renders to
<form action="/photos/create?multipart=true" method="post"> <input id="photo_uploaded_file" name="photo[uploaded_file]" size="30" type="file" /> <input name="commit" type="submit" value="Create" /> </form>
The database model has no column named 'uploaded_file' because this value is to be split into a field for the MIME and one for the content. So I added a setter method:
class Photo < ActiveRecord::Base def uploaded_file=(file) self.mime = file.content_type # => Raises undefined method `content_type' for "Photo.jpg":String end end
The request parameters from rails' traceback are:
Parameters: {"photo"=>{"creator"=>"Siemen", "uploaded_file"=>"Photo.jpg"}, "multipart"=>"true", "commit"=>"Create"}
So also a string here...
Any help would be greatly appreciated!
Siemen