Search code examples
ruby-on-railsx-sendfile

Problems with x_sendfile in Rails


I’m having some problems with John Guenin's x_sendfile (http://john.guen.in/past/2007/4/17/send_files_faster_with_xsendfile/).

When coding the download of a PDF file, I’m using the following code:

def send_the_file(filename)
  xsendfile (“#{Rails.root}/doc/” + filename, :type => ‘application/pdf’)
end

but I only get 1 byte downloaded. This usually happens if the filename is not absolute (hence the #{Rails.root} being added. I’ve also checked that the file has the necessary permissions. This is failing both on localhost and my prod site.

Any ideas what I'm doing wrong?

TIA,

Urf


Solution

  • What version of Rails are you using? If you're on 2.1 or later, the X-Sendfile option is built into Rails' send_file method.

    send_file 'filename', :x_sendfile => true
    

    Otherwise, are you sure that mod_xsendfile has been installed and configured correctly?