Frage

Kann mich jemand aufklären, wie ich eine Datei mit herunterladen kann send_file?

Ich habe eine Datei image.jpg inneren app/assets/images.Ich habe das in meinem Controller versucht:

def download
    send_file ("#{Rails.root}/public/images/image.jpg")
end

def download
    send_file ("#{Rails.root}/assets/images/image.jpg")
end

def download
    send_file ("#{Rails.root}/images/image.jpg")
end

def download
    send_file ("/public/images/image.jpg")
end

def download
    send_file ("/assets/public/images/image.jpg")
end

def download
    send_file ("/assets/images/image.jpg")
end

Für jeden Weg heißt es:

ActionController::MissingFile in HomeController#download
Cannot read file 'some_path'

Was könnte hier ein Problem sein?Danke!

War es hilfreich?

Lösung

Versuchen:

IMAGES_PATH = File.join(Rails.root, "public", "images")

def download
  send_file(File.join(IMAGES_PATH, "image.jpg"))
end

Andere Tipps

In your view =>
<%= link_to "click here to download", signed_feeds_pdf_path(:feed_image_path => feed_image.feedimage.path), target: '_self' %>

In your controller =>
   def pdf
     file_name = params[:feed_image_path].split('/').last
     @filename ="#{Rails.root}/public/uploads/feed_image/feedimage/#{file_name}"
     send_file(@filename ,
      :type => 'application/pdf/docx/html/htm/doc',
      :disposition => 'attachment')           
  end
soo simple......

nun, ich schlage vor, Sie verschieben Ihre Datei in einen öffentlichen Ordner.Wie auch immer , mach das

send_file(Rails.root.join('app' , 'assets', 'images', 'image.jpg'))

Wir müssen den Minentyp angeben, damit er zwischengespeichert wird.

send_file ("#{Rails.root}/public"+image.image_path), :type => "image/jpeg", :disposition => 'inline'

Für alle, die noch nach einer Antwort suchen, funktionieren send_data und send_file nicht, wenn sie auf Ajax-Aufrufe antworten.Versuchen Sie stattdessen, ein Formular einzureichen oder zu verwenden <a href=..> um die Controller-Methode aufzurufen und eine Datei herunterzuladen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top