Rails: 重新归档以下载文件
Rails: Refile for documents to download
使用 refile
gem,我上传了文档(.pdf、.docx、.pptx 等)。上传没问题。当我使用 attachemnt_url
时,它会生成类似于 /attachments/...234jksdf2.../document
的内容。当我单击 link_to
时,它会下载没有扩展名的文档。
是什么让它以这种方式运行?如何恢复我的文件类型完整性?
我试图解决完全相同的问题,这是我尝试过的一种方法:
Refile 允许您保存其他元数据,例如 content_type
:https://github.com/refile/refile#additional-metadata。生成的文件内容类型将保存为类似 "image/png"
或 "application/pdf"
的类型。
然后我们可以应用类似
的东西
link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)
据此
in document.rb
def file_extension
file_content_type.split("/").last.to_sym
end
唯一的问题是这不会自动下载文件,而是会在新页面中打开它,然后您可以在其中下载文件。仍在寻找更好的替代品!
这对我来说是正确的解决方案。
link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)
def file_extension
require 'rack/mime'
Rack::Mime::MIME_TYPES.invert[document_content_type].split('.').last
end
使用 refile
gem,我上传了文档(.pdf、.docx、.pptx 等)。上传没问题。当我使用 attachemnt_url
时,它会生成类似于 /attachments/...234jksdf2.../document
的内容。当我单击 link_to
时,它会下载没有扩展名的文档。
是什么让它以这种方式运行?如何恢复我的文件类型完整性?
我试图解决完全相同的问题,这是我尝试过的一种方法:
Refile 允许您保存其他元数据,例如 content_type
:https://github.com/refile/refile#additional-metadata。生成的文件内容类型将保存为类似 "image/png"
或 "application/pdf"
的类型。
然后我们可以应用类似
的东西link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)
据此
in document.rb
def file_extension
file_content_type.split("/").last.to_sym
end
唯一的问题是这不会自动下载文件,而是会在新页面中打开它,然后您可以在其中下载文件。仍在寻找更好的替代品!
这对我来说是正确的解决方案。
link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)
def file_extension
require 'rack/mime'
Rack::Mime::MIME_TYPES.invert[document_content_type].split('.').last
end