È possibile utilizzare il sistema di guide incorporato send_file o send_data.
per lo streaming di un file (ad esempio per un endpoint proxy file), utilizzare send_file:
send_file("#{RAILS_ROOT}/path/to/file/on/server",
:filename => "client-suggested-filename",
:type => "mime/type")
per lo streaming di dati generati (ad esempio per un pdf generato), uso Send_Data:
send_data(your_data,
:filename => "client-suggested-filename",
:type => "mime/type")
Il l'estensione del file e il tipo mime non devono necessariamente coincidere, ma probabilmente dovrebbero essere conformi alle aspettative degli utenti finali. Ad esempio, se si invia con un tipo mime di application/pdf
, è necessario impostare realmente lo :filename
su something.pdf
.
Se non si è sicuri del tipo di mime per il file che si sta inviando, è possibile controllare this wikipedia page o utilizzare la gemma mime-types. (O se stai leggendo da un database che memorizza il tipo mime, usa quello).
fonte
2012-02-10 18:48:29
possibile duplicato: http://stackoverflow.com/questions/1213957/exposing-files-from-a-service-through-a-rails-application – Baldrick