Hiya
In my view, I’m using <%= f.file_field :file %>
Problems is, if the form has a validation error, this field is cleared
- and the user has to reselect a file
Does anyone have a solution for this?
thanks
Jason
Hiya
In my view, I’m using <%= f.file_field :file %>
Problems is, if the form has a validation error, this field is cleared
Does anyone have a solution for this?
thanks
Jason
Does anyone have any ideas?
Is it even possible to fix?
Have been googling, but no luck
jasonb wrote:
In my view, I’m using <%= f.file_field :file %>
Problems is, if the form has a validation error, this field is cleared
- and the user has to reselect a file
Does anyone have a solution for this?
HTML file select controls are always initially blank in Rails,
and this is also enforced by most browsers. This is because
a malicious web page could get you to upload an arbitrary file
by hiding the select from the user.
–
We develop, watch us RoR, in numbers too big to ignore.
Ok but this is after the form his submitted and returned with errors
Can anyone advise of a way to get around this?
I’m not sure of the nature of the object returned by file_field…
does it contain the file path? am I able to re-populate the file
field based on that object?
Maybe I could ask this…
When a form is submitted with file_field… what is the object that
is generated from the file_field?.. and what is the best way to
inspect that object?
For example, if I wanted to output that object with the validation-
errors, for the sake of debugging, how would I do it?
On Feb 4, 2008, at 5:57 PM, jasonb wrote:
Maybe I could ask this…
When a form is submitted with file_field… what is the object that
is generated from the file_field?.. and what is the best way to
inspect that object?
This is how I do it (which I didn’t come up with all my myself) in a
create action of a controller:
data = params[:model].delete('data') # HashWithIndifferentAccess
still needs the actual key type to .delete
params[:dump] = "data=#{data};
filename=#{data.original_filename}; content_type=#{data.content_type}"
if data.blank?
flash[:error] = "No image file selected for upload"
redirect_to :action => 'new' and return
end
content = data.read
if content.blank?
flash[:error] = "Selected upload file was empty"
redirect_to :action => 'new' and return
end
In my case the file is intended to be an image. I think that ‘data’
will be either a StringIO or File object.
That might give you enough to experiment with.
For example, if I wanted to output that object with the validation-
errors, for the sake of debugging, how would I do it?
That’s what I was doing with params[:dump]. In the view (layout?), I
have a <%= debug(params) %> to see what’s going on.
-Rob
HTML file select controls are always initially blank in Rails,
and this is also enforced by most browsers. This is because
a malicious web page could get you to upload an arbitrary file
by hiding the select from the user.–
We develop, watch us RoR, in numbers too big to ignore.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs