send_data damaging the PDF document

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
I have to open the file from application so I have written following
View Code:-
<%= link_to 'View Attachment', {:action=>"show_attachment",
:id=>} %>

Controller Code:-
def show_attachment
     send_data(@user.attachment.url, :type => "application/pdf",
:filename => "attachment.pdf", :disposition => 'attachment')

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.


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

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

Any other suggestion.


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)