SITECORE MANIA 開発者向け技術ブログ

コードサンプル

岡崎

岡崎

コードからMedia Library(メディアライブラリ)上にアイテムを作成する方法

開発において、コード上からメディアライブラリ配下にメディアアイテムを作成する方法を紹介したいと思います。

アイテム生成のオプション

「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のバージョンによって実装されている機能が異なります。

この記事を読んだ人はこちらの記事も読んでます

Sitecore導入に関するご相談・資料ダウンロード

導入をご検討・ご依頼の方や、サービスについてご不明点がございましたらお気軽にお問い合わせください。

Sitecoreの運用問題を解決する

既にSitecoreを導入しているお客様向けサービス