2012-08-14 42 views
1

我有一個功能,可以在sitecore媒體庫中自動創建PDF文件。我想在其他網頁上顯示鏈接以下載或查看此PDF。Sitecode URL到媒體文件

Sitecore.Data.Database context= Sitecore.Configuration.Factory.GetDatabase("master"); 
Sitecore.Data.Items.MediaItem item = (Sitecore.Data.Items.MediaItem)context.GetItem("/sitecore/Media Library/Requests/"+ddlRequests.SelectedValue+".pdf"); 

要獲得項目鏈接,我使用以下行。這條線不會顯式執行。

Sitecore.Resources.Media.MediaManager.GetMediaUrl(item); 

任何想法我在做什麼錯在這裏?

+0

ddlRequests.SelectedValue的值是什麼? – 2012-08-14 08:41:23

+0

它是一個唯一的數字,也是pdf的名稱。示例「36」+「。pdf」 – Hazaart 2012-08-14 08:45:19

回答

2

它看起來像你的代碼應該工作得很好,查詢中沒有.pdf。選擇媒體庫中的一個pdf文件並在content選項卡上檢查Item Path屬性的值。這就是你應該在查詢中使用的東西(所以很可能沒有.pdf):

Sitecore.Data.Database db = Sitecore.Configuration.Factory.GetDatabase("master"); 
Sitecore.Data.Items.MediaItem item = (Sitecore.Data.Items.MediaItem)db.GetItem("/sitecore/Media Library/Requests/" + ddlRequests.SelectedValue); 
Sitecore.Resources.Media.MediaManager.GetMediaUrl(item); 
+0

謝謝你,這個技巧!該代碼現在可以工作,但URL不會。當我點擊它時,我被重定向到一個錯誤頁面。我是否需要首先發布該物品?我的代碼只將它添加到媒體庫中,不知道在可見之前是否應該做其他事情。 – Hazaart 2012-08-14 09:00:09

+0

是的,媒體庫中的媒體項目只是一種sitecore項目 - 它們也必須發佈。代碼生成的鏈接是什麼?它以「/」開頭嗎? – 2012-08-14 09:20:25

+0

該文件創建於/ sitecore /媒體庫/請求 – Hazaart 2012-08-14 09:40:55