ユーザもしくは管理者がメール添付や通常のブラウザでのUIによるファイルアップロード機能をつかって画像、 ファイルをシステム側にアップロードした場合の管理ルールをまとめます。 ディレクトリ以下のディレクトにアップロードすることとします。 RAILS_ROOT/public/system/images # 画像ファイルの類 指定方法それぞれ一般的な指定方法を示します。 画像の場合file_columnを利用している場合、以下のようにアップロード先などのパスを指定できます。 なおこの設定は config/initalizers/file_column_option.rb で指定されており、各modelで宣言する必要はありません。 file_column :image, :magick => {
特別の理由がない限り、 AppResources?['base']に定義されている、file_column_image_web_rootとfile_column_image_root_pathを利用してください。 この際、画像は以下のディレクトリに保存されます。 RAILS_ROOT/system/images/file_columnを定義したモデル名/ ファイルの場合特別な処理の必要はないため、ソースは省略します。 以下のディレクトリに保存されるようにしてください。 プラグイン名もしくは案件名を接頭詞につける以外は特別なルールはありません。 RAILS_ROOT/system/files/プラグイン名or案件名_xxxxx/ 制限不特定のユーザがアップロードする場所には必ず1ファイル容量のMaxを設定してください。 可能であればファイル種別による制限も設ける必要があります。 指定方法サイズ指定以下のようにvalidates指定が可能です。なおこの際指定する数値単位は「byte」です。 validates_filesize_of :image, :in => 0..1000 フォーマット指定以下のようにvalidates指定が可能です。なおこの際指定可能なフォーマット一覧は vendor/plugins/file_column/lib/file_column.rb を参照してください。 validates_file_format_of :image :in => ["gif", "png", "jpg"] system 以下に保存する理由public 以下に直接ディレクトリを置き、そこに保存した場合、サーバなどにCapistranoを利用してデプロイするときに問題が発生します。 具体的にはCapistranoの仕様上、一意のディレクトリ名で一度チェックアウトし、現在の利用ディレクトリへのリンクを張りなおすということを実行するために、デプロイ以前のファイル等を参照できなくなってしまうからです。 これを避けるために、Capistranoは public/system 以下のディレクトリをデプロイによるチェックアウト処理とは別の共有ファイルとして管理する機構があるため、こちらを利用します。 |