Bạn có thể sử dụng đường ray dựng sẵn send_file hoặc send_data.
Để dòng một tập tin (ví dụ như đối với một thiết bị đầu cuối tập tin proxy), sử dụng send_file:
send_file("#{RAILS_ROOT}/path/to/file/on/server",
:filename => "client-suggested-filename",
:type => "mime/type")
Để dòng dữ liệu được tạo (ví dụ cho một pdf được tạo ra), sử dụng send_data:
send_data(your_data,
:filename => "client-suggested-filename",
:type => "mime/type")
Các phần mở rộng tệp và loại mime không cần phải khớp, nhưng chúng có thể chỉ phù hợp với mong đợi của người dùng cuối. Ví dụ: nếu bạn đang gửi với loại mime application/pdf
, bạn thực sự nên đặt :filename
thành something.pdf
.
Nếu bạn không chắc chắn loại mime dành cho tệp bạn đang gửi, bạn có thể kiểm tra this wikipedia page hoặc sử dụng đá quý mime-types. (Hoặc nếu bạn đang đọc từ một cơ sở dữ liệu lưu trữ loại mime, hãy sử dụng nó).
Nguồn
2012-02-10 18:48:29
có thể trùng lặp: http://stackoverflow.com/questions/1213957/exposing-files-from-a-service-through-a-rails-application – Baldrick