我正在开发一个需要文件上传/下载的 Ruby on Rails 应用程序。对于上传部分,我使用了 gem carrierwave,因为它非常易于使用且灵活。问题是:一旦我上传了文件,我需要知道一些事情:即如果它是 pdf 而不是下载文件,我会在线显示它,图像也是如此。我如何获得文件扩展名以及如何发送文件给用户?感谢任何反馈谢谢!!
最佳答案
确定文件扩展名(我想挂载的 uploader 的名称是"file"):
file = my_model.file.url
extension = my_model.file.file.extension.downcase
然后准备 mime 和配置变量:
disposition = 'attachment'
mime = MIME::Types.type_for(file).first.content_type
if %w{jpg png jpg gif bmp}.include?(extension) or extension == "pdf"
disposition = 'inline'
end
(如果需要,添加其他扩展)。
然后发送文件:
send_file file, :type => mime, :disposition => disposition
关于ruby-on-rails - Carrierwave如何获取文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644557/