【问题标题】:Send file to a client using Grape API使用 Grape API 向客户端发送文件
【发布时间】:2013-07-18 20:33:58
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    如果我没有设置 '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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-27
        • 2014-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-02
        相关资源
        最近更新 更多