File Upload - Preserving Original File Name

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

Try this:

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

Jamey

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

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

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