web-dev-qa-db-ja.com

Drupal 7画像フィールドに別の許可されたファイル拡張子を追加できないのはなぜですか?

以下に示すように、admin/structure/types/manage/image/fields/gallery_imageを介した画像アップロード用のSVGファイル拡張子を追加しました。

enter image description here

しかし、画像をアップロードするときに、SVGをアップロードすることはできません。

enter image description here

私は間違いなく管理ページで[保存]を押し、キャッシュをクリアしました。field_config_instanceテーブルを調べたところ、データベースで必要な設定が表示されました。更新されていない他のテーブルまたはキャッシュが存在する必要があります。何か案が?

12
Joe Corneli

画像ウィジェットは内部でpnggifjpgのみの使用を許可(および通知なしでpost Drupal 6)します)および/またはjpeg extensions。したがって、フィールドから拡張子を削除できますが、たとえば、アニメーション化されたものを避けるために、ほとんどの実装からgifを削除しましたが、このリストに何も追加することはできません。それはそれ自体がアップロード後に画像を表示し、古いIEブラウザの実際の形式のブラウザを壊したくなかったためです(さらに、画像スタイルの方法を知っている人)彼らにも働きます:)

7
Jimajamma

ファイルフィールドを使用して、カスタムモジュールにhook_field_formatter_info_alterを実装するだけで、ファイルフィールドに対しても「イメージ」フォーマッタを有効にすることができます。次に、アップロードされたSVGを埋め込み画像として簡単に出力できます。

/**
 * Implements hook_field_formatter_info_alter().
 */
function MODULNAME_field_formatter_info_alter(&$info) {
  $info['image']['field types'][] = 'file';
}
2
yannickoo

すでに述べたように、DrupalのコアImageモジュールがSVGを受け入れることを許可する簡単な方法はありません。代わりに、提供されたモジュール SVG Embedこのディスカッション )またはこれ sandbox(正式にはリリースされていません)SVGモジュール

更新:サンドボックスでも svgimg をお勧めしますが、まもなくリリースされる予定です。本番で使用して、とても嬉しいです。

2
mlncn

Media モジュールを使用する別の方法もあります。これをインストールしたら、SVG形式をイメージの下のadmin/structure/file-typesに追加できます。

私が間違っていない場合、Drupalは、下位互換性の問題(主にIE8以下)のため、デフォルトでSVGを許可していません)。 、まだ苦情を聞いていません。

1
karolus