16

最新のアプリケーションでは、いくつかのアップロードを処理する必要があります。以前はペーパークリップを使用していましたが、すべてが正常に機能します。しかし、carrierwaveを試してみました。有望に見えますが、添付ファイルのサイズを検証する方法が見つかりません。ドキュメントにそれに関する情報がないようです。手動でモデルに追加する必要があります。カスタムバリデーター経由?

前もって感謝します!

4

4 に答える 4

20

githubにWikiエントリがあります:https ://github.com/jnicklas/carrierwave/wiki/How-to%3A-Validate-attachment-file-size

于 2011-06-09T09:05:16.413 に答える
5

Carrierwave、PaperClip、Drangonfly、Refileのコンテンツタイプとファイルサイズの検証をチェックするActive Model File Validators gemを作成しました(他のアップロードソリューションで機能することを願っています)。ファイルの内容に基づいて内容の種類を検出し、メディアタイプのなりすまし検出器を備えています。アップロード前とアップロード後の両方で機能します。

于 2014-12-11T22:35:39.787 に答える
5

1.0バージョンCarrierWave以降、ファイルサイズの検証が組み込まれています。

最新のcarrierwave宝石をインストールする

gem 'carrierwave', '~> 1.0'

size_range最小サイズと最大サイズを提供するメソッドを追加します

class ImageUploader < CarrierWave::Uploader::Base
  def size_range
    0..2.megabytes
  end

validates_integrity_ofモデルで、画像のファイルサイズ(およびコンテンツタイプ)を有効に追加します。

class Image < ApplicationRecord
  mount_uploader :image, ImageUploader

  validates_integrity_of :image
于 2017-01-13T11:27:20.057 に答える
-1

これが私が思いついた解決策です-トリックは、ファイルがアップロードされていない場合、FogRubyGem爆弾を作ったのでファイルサイズを直接チェックできないということでした。ファイルがアップロードされたかどうかをCarrierWaveに尋ねるよりクリーンな方法があると思います。

于 2014-03-07T09:25:09.733 に答える