私はCarrierWaveを使用しています、と私は、ファイル名を検証し、拡張子だけが.gif
、.png
、.jpg
、.jpeg
、またはファイル拡張子がない場合であれば、ファイルのアップロードを許可したいと思います。ファイル拡張子がある場合にのみファイル拡張子を検証する方法は?再:carrierwave
拡張子のないファイルをアップロードすることがあります。たとえば:
http://t2.gstatic.com/images?q=tbn:ANd9GcTCD2TLvYI8a4ChgBaYK_JaRfedvXLr3HXQfj0arXXAii3o2yjf
私はuploaders/image_uploader.rb
に以下の行のコメントを解除する可能性を認識していますが、私はさらにある場合にのみ、これらの拡張機能のいずれかを許可する」というの仕方を知りませんファイル拡張子 "
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
#def extension_white_list
# %w(gif jpg jpeg png)
#end
だけでなく、次のように私のモデルに私が検証を持っていますが、何らかの理由でbad-extension.bad
パス。
validates :image, allow_blank: true, format: {
with: %r{\.(gif|jpe?g|png)\z}i,
message: 'must be a GIF, JPG, or PNG'
}, if: :filename_has_extension?
def filename_has_extension?
image =~ /\./
end