我正在開發一個需要文件上傳/下載的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