send_data damaging the PDF document

Hi,
I am uploading a PDF file using paper clip. File get uploaded
successfully. If I try to view the file directly from file system it is
opening.
I have to open the file from application so I have written following
code.
View Code:-
<%= link_to 'View Attachment', {:action=>"show_attachment",
:id=>user.id} %>

Controller Code:-
def show_attachment
    @user=User.find(params[:id])
     send_data(@user.attachment.url, :type => "application/pdf",
:filename => "attachment.pdf", :disposition => 'attachment')
  end

Whenever I run the application and click on 'View Attachment' link it
opens the pop up which ask for either save it or open it. I click on
"OK", it starts to download pdf file but ends with saying
"Adobe Reader could not open "attachment-4.pdf" beacuse either it not
supported file type or file has been damaged."

Can anyone tell me what is the issue?
I can see the pdf file from the uploaded location.

Thanks,
Tushar

You probably need to use the path instead of the url for sending files:

send_data(@user.attachment.path, :type => “application/pdf”,
:filename => “attachment.pdf”, :disposition => ‘attachment’)

Best regards

Peter De Berdt

Hi,
Thanks for your reply, but still it is not working.

Any other suggestion.

Thanks,
Tushar

Hi,
Thanks for your reply, but still it is not working.

send_data expects you to be giving it the actual bytes to send, not a
url or a file path. You need to read the file yourself (or use
send_file which will take care of that)

Fred