我正在开发一个需要文件上传/下载的Ruby on Rails应用程序。对于上传部分,我使用了宝石载波,因为它非常易于使用和灵活。问题是:一旦我上传文件,我需要知道一些事情:即如果它是一个PDF而不是下载文件,我显示它内联,并且图像也是如此。如何获得文件扩展名,我怎么能这样做发送文件给用户?任何反馈表示赞赏谢谢!Carrierwave如何获得文件扩展
12
A
回答
30
确定文件的扩展名(我想为安装上传者的名字是“文件”):
file = my_model.file.url
extension = my_model.file.file.extension.downcase
然后准备哑剧和处置瓦尔:
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
2
一旦你上传了一个文件,名字就存储在数据库中。这也包括扩展。假设你有一个User
模型安装为asset
的上传,那么你就可以得到它为:
user.asset.file.extension
至于它发送给用户,如果你调用user.asset_url
,它会给你的URL文件所在上传。用户可以使用该链接来获取文件。或者我误解了“将文件发送给用户”的含义?
相关问题
- 1. 如何获得文件的扩展名
- 2. 如何获得扩展文件NSString
- 3. 如何获得highslide扩展
- 4. 从file_get_contents获得文件扩展名
- 5. 获得发布文件扩展名asp.net
- 6. 如何仅在存在文件扩展名的情况下验证文件扩展名?回复:carrierwave
- 7. Android - 如何获取文件扩展名?
- 8. Angularjs如何获取文件扩展名?
- 9. 如何在窗口上获得离子的Ipa文件扩展
- 10. 如何获得MIME类型的文件扩展(内容类型)
- 11. 如何获得没有文件扩展名的链接名称?
- 12. 如何从url获得文件扩展名
- 13. 如何在nutch中获得文件扩展名?
- 14. 如何获得没有扩展名文件类型
- 15. 如何获得扩展的图像文件jquery.filer
- 16. 如何获得没有扩展名的文件名?
- 17. 如何使用xp_dirtree获得没有扩展名的文件名
- 18. ReactJS Dropzone如何获得基文件名(无扩展名)?
- 19. Mozilla(Firefox,Thunderbird)扩展名:如何获得扩展名(来自install.rdf)?
- 20. eclipse rcp如何获得扩展名?
- 21. 如何获得原始图像扩展
- 22. Primeng如何获得行的rowIndex扩展?
- 23. 如何获得Roslyn的扩展方法?
- 24. 如何获得扩展的pdf版本
- 25. 如何从没有扩展名的文件名获取文件扩展名?
- 26. 如何获得在网址中没有扩展名的在线文件的文件扩展名
- 27. 如何在没有扩展名的文件中获得文件名
- 28. 如何通过sql查询获得文件的文件扩展名?
- 29. php如何获得文件夹中没有扩展名的文件列表
- 30. 如何从Ruby文件路径中获得文件名无扩展名
非常感谢你,我喜欢你的解决方案的风格,它的工作完美。再次感谢您的回复! – Wiggin 2012-07-25 09:19:55
哪里确切地在rails项目文件中放置了处置和MIME类型变量? – maumercado 2012-10-12 02:02:15