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


12

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

ここに画像の説明を入力してください

しかし、画像をアップロードするときに、SVGをアップロードすることはまだ許可されていません。

ここに画像の説明を入力してください

私は間違いなく管理ページで「保存」を押し、キャッシュをクリアしましたfield_config_instance。テーブルを調べたときに、データベースで設定が必要だったのを見ました。更新されていない他のテーブルまたはキャッシュが必要です。何か案が?

回答:


7

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


良い答えですが、何と残念です。
ジョーコルネリ

2
doに関する議論はこちらです:drupal.org/node/1014816
ジョーコルネリ

2

ファイルフィールドを使用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

前述のように、DrupalのコアImageモジュールがSVGを受け入れるようにする簡単な方法はありません。代わりに、提供されたモジュールSVG Embedこの議論でSVGのファイルフィールドに対して慎重に選択された)またはこのサンドボックス(公式にリリースされていない)SVGモジュールを使用できます

更新:サンドボックスでもsvgimgをお勧めしますが、すぐにリリースされる可能性があります。本番環境で使用し、非常に満足しています。


1

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

誤解しない限り、後方互換性の問題(主にIE8以下)のため、Drupalは引き続きデフォルトでSVGを許可しません。ただし、私はしばらくの間プロジェクトにSVGを配置してきましたが、まだ苦情を聞いていません。


それが正しい道かどうかはわかりませんが、メディアは間違いなくこの問題を解決する方法です。
digitgopher

記録のために、SVGと呼ばれる新しいタイプを作成しました。これは、出力をカスタマイズし、画像に異なる出力を持たせる素晴らしい方法です
-shaneonabike
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.