Forum: Ruby on Rails File Upload - Preserving Original File Name

Posted by Doug Jolley (ddjolley)
on 2010-03-09 03:57
(Received via mailing list)
I am using the following line of code in an action to provide a file
upload capability.

File.open(params[:upload_directory]+'/'+'test1','wb'){|f|
f.write(params[:file2upload].read)}

Admittedly, I'm not real clear on exactly how the above line works;
but, it does work.  I'm wondering if there is any way I can get at the
original file name (i.e., the name of the file on the system from
which the file is being uploaded) so that I could substitute it for
'test1' and thereby preserve the original file name.

Any suggestions would be appreciated.  Thanks.

            ... doug
Posted by Jamey Cribbs (Guest)
on 2010-03-09 04:31
(Received via mailing list)
Try this:


File.open(File.join(params[:upload_directory],
params[:file2upload].original_filename),'wb'){ |f|
  f.write(params[:file2upload].read) }

Jamey
Posted by Doug Jolley (ddjolley)
on 2010-03-09 19:47
(Received via mailing list)
> Try this:
>
> File.open(File.join(params[:upload_directory],
> params[:file2upload].original_filename),'wb'){ |f|
>   f.write(params[:file2upload].read) }

Yes; but, as I understand your suggestion, that would require me to
pass the original filename as a parameter.  What I'm trying to find
out is whether the original filename is somehow available for use as a
part of the file upload mechanism without my having to pass it as a
parameter.  If it turns out that it's not available within the file
upload mechanism; then, I can pass it.  It's just that I don't want to
go that route if there is an easier way.

Thanks for the input.

         ... doug
Posted by Jamey Cribbs (Guest)
on 2010-03-09 20:02
(Received via mailing list)
That's what I'm trying to tell you.  If you are using a multipart form
to upload your file, then the #original_filename attribute should be
available on the uploaded file object.

Jamey
Posted by Doug Jolley (ddjolley)
on 2010-03-09 20:38
(Received via mailing list)
> That's what I'm trying to tell you.  If you are using a multipart form
> to upload your file, then the #original_filename attribute should be
> available on the uploaded file object.

Got it!   I'm an idiot!  Thanks a batch.

         ... doug
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.