1

拡張子が .txt の添付ファイルをアップロードする必要がありますが、file コマンドで mime-type "application/octet-stream" に評価されます。ファイルは機器によって自動的に生成され、アップロードする前に名前を変更することはできません。私が試してみました:

class Book < ActiveRecord::Base
  has_attached_file :excerpt
  validates_attachment_content_type :excerpt, content_type: { content_typ: ["text/plain", "application/octet-stream"]}
  validates_attachment_file_name :excerpt, matches: [/txt\z/]
end

しかし、検出されたコンテンツタイプが推測されたコンテンツタイプと一致しないというエラーが常に発生します。

Command :: file -b --mime '/tmp/313a40bb0448477e051da1e2cba2c20120161027-19345-lrhf6t.txt'
[paperclip] Content Type Spoof: Filename Sample.txt (text/plain from Headers, ["text/plain"] from Extension), content type discovered from file command: application/octet-stream. See documentation to allow this combination.

エラーメッセージには、組み合わせを許可する方法についてドキュメントを参照するように記載されていますが、回避策と思われるものは見つかりませんでした。この議論を見ましたが、それはv4用でした。

4

2 に答える 2