【问题标题】:How to send file to user with carrierwave?如何使用carrierwave向用户发送文件?
【发布时间】:2011-08-25 15:59:18
【问题描述】:

这是我向浏览器发送文件的旧代码:

def show
  send_file File.join(Rails.root, 'tmp', 'price.xls')
end

但最近我发现 tmp 文件夹不能用作 Heroku 上的持久存储,所以我决定将文件移动到 AWS S3。

这就是我到目前为止所得到的:

def show
  uploader = PriceUploader.new
  uploader.retrieve_from_store!('price.xls')
end

现在,如何将文件发送到浏览器?

更新

我故意没有挂载上传器

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 carrierwave


    【解决方案1】:

    想通了。

    def show
      uploader = PriceUploader.new
      uploader.retrieve_from_store!('price.xls')
      uploader.cache_stored_file!
    
      send_file uploader.file.path
    end
    

    【讨论】:

    【解决方案2】:

    就我而言

    # find  uploader ...
    
    send_file(uploader.path,
             filename: uploader.filename,
             type: "application/<some-type>")
    

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2011-02-22
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 2022-01-08
      • 2020-04-23
      相关资源
      最近更新 更多