使用Grape API将文件发送到客户端

时间:2013-07-18 20:33:59

标签: ruby-on-rails carrierwave grape grape-api

我一直在做使用carrierwave进行文件上传的rails应用程序。如何使用Grape API将现有文件发送到客户端?我们假设该文件位于“public / uploads / datafile / 1 / file.txt”目录中。

2 个答案:

答案 0 :(得分:2)

如果我没有设置'api_format'

,我会获得utf8字符转换
if file_path && File.exists?(file_path)
  data = File.open(file_path, 'rb').read

  header "Content-Disposition:", " infile; filename=\"#{File.basename(file_path)}\""
  content_type 'application/x-gzip'

  env['api.format'] = :binary

  present data
end

这是葡萄0.4.1

答案 1 :(得分:1)

只要您设置内容类型,就像发送文件内容一样简单。

content_type "text/plain"
File.read(...)