2017-10-30 6 views
0

カスタムWebパーツでKenticoのメディア選択に永続URLを使用しています。私が望むのは、それが示すURLのGUIDです。そのため、(ファイルメディアプロバイダを使用して)データベースからメディアの情報を取得できます。永続URL(メディアセレクタ)からGUIDを取得するにはどうすればよいですか?

これは私が998dd0ab-10d3-4cc1-bfbd-8e7bec48cf8c数である必要がありますどのようなURLの例

~/getmedia/998dd0ab-10d3-4cc1-bfbd-8e7bec48cf8c/sample_doc.doc

です。すべてのヘルパーを成功させてみました。

答えて

2

通常、GUIDを取得する方法は、Kentico APIではなく正規表現を使用する方法です。以下試してください:

string pattern = @"[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}"; 
string input = "~/getmedia/998dd0ab-10d3-4cc1-bfbd-8e7bec48cf8c/sample_doc.doc"; 

var guid = Regex.Match(input, pattern, RegexOptions.IgnoreCase).Value; 

が​​変数はあなたがあなたが後にしている情報を取得O使用CNA 998dd0ab-10d3-4cc1-bfbd-8e7bec48cf8cに設定されます。

+0

最後に、設定から「永久URLを使用」のチェックを外さずに、永久URLまたはGUIDからMedia Library Direct Pathを取得する方法はありますか?c# 'HttpResponse'でファイルをダウンロードしたいsoと 'TransmitFile'がありますが、そのためには直接のパスが必要です –

+0

MediaFileInfoがあれば、' CMS.MediaLibrary.Web.UI.MediaLibraryFunctions.GetMediaFileDirectUrl() 'を見てみてください。 – mnield

関連する問題