gemを使用して、refile
ドキュメント (.pdf、.docx、.pptx など) をアップロードしました。アップロードは問題ありません。を使用するattachemnt_url
と、 のようなものが生成されます/attachments/...234jksdf2.../document
。をクリックするlink_to
と、拡張子なしでドキュメントがダウンロードされます。
このように動作させるために何が起こっていますか?ファイルの種類を正常に戻すにはどうすればよいですか?
gemを使用して、refile
ドキュメント (.pdf、.docx、.pptx など) をアップロードしました。アップロードは問題ありません。を使用するattachemnt_url
と、 のようなものが生成されます/attachments/...234jksdf2.../document
。をクリックするlink_to
と、拡張子なしでドキュメントがダウンロードされます。
このように動作させるために何が起こっていますか?ファイルの種類を正常に戻すにはどうすればよいですか?
私はまったく同じ問題に対処しようとしていました.これは私が試した1つのアプローチです:
content_type
Refile を使用すると、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