開発において、コード上からメディアライブラリ配下にメディアアイテムを作成する方法を紹介したいと思います。
アイテム生成のオプション
「MediaCreator」クラスの「CreateFromStream」メソッドを使用することで、自身で設定したオプション通りに画像アイテムを作成することができます。
まずは、これから作成したいアイテムに対して、言語や作成場所などのオプションを設定するための方法を紹介します。
以下のサンプルコードでは、「MediaCreatorOptions」クラスからメディアアイテム作成に使うオプションを生成しています。
var options = new Sitecore.Resources.Media.MediaCreatorOptions
{
Language = Sitecore.Globalization.Language.Parse("ja-JP"),
FileBased = false,
Versioned = false,
IncludeExtensionInItemName = false,
Destination = "/sitecore/media library/Images/sample",
Database = Sitecore.Data.Database.GetDatabase("master"),
AlternateText = "代替テキスト"
};
次に「MediaCreatorOptions」クラスで使用しているプロパティの説明です。
プロパティ |
概要 |
Language |
作成するアイテムの言語を設定します。
|
FileBased |
物理ファイル保存の場合はtrue、SQLのBLOB保存の場合はfalseになります。 |
Versioned |
tureの場合は、アイテムは1つのデフォルト言語バージョンでのみ作成されます。falseの場合はすべての言語でメディアアイテムを作成します。
|
IncludeExtensionInItemName |
これから作成するアイテムの拡張子をファイルから読み取る場合はtrueに設定します。
|
Destination |
アイテムの作成先を指定します。注意点としては、アイテム名までここで指定することです。
例)/sitecore/media library/Images/{アイテム名}
|
Database |
保存するデータベースを指定します。 |
AlternateText |
画像が表示されなかったときの代替テキストを設定します。 |
次は、上記で設定したオプションを使いアイテムを作成していきます。
アイテムの作成
アイテムを作成するには、「MediaCreator」クラスの「CreateFromStream」メソッドを使います。
var creator = new Sitecore.Resources.Media.MediaCreator();
var createItem = creator.CreateFromStream({対象ファイル}.Media.InputStream, "{アイテム名}.png", options);
「CreateFromStream」メソッドの第2引数にしている"{アイテム名}.png"では、オプションのDestinationで指定したアイテム名を入れます。
ここではファイル拡張子の指定が必要なので、任意のものを指定してください。今回は拡張子の指定をpngにしています。
第3引数には、設定したオプションを指定します。
これらの手順でメディアライブラリ配下にアイテムを作成することができます。参考になれば幸いです。
以上になります。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。