2016-12-13 37 views
0

我正在尋找允許用戶下載存儲在Sitecore媒體庫中的PDF文件。 Basicaly,我正在發送一封電子郵件,其中包含用戶可以下載的PDF文件的鏈接。Sitecore 8.0允許從媒體庫中下載文件

這可能嗎?如果有,請使用哪個網址?

我們使用的是Sitecore 8.1,.Net MVC和GlassMapper。 在玻璃映射伊夫嘗試使用文件的src屬性的模型作爲HREF爲其給人以ashx的文件,但是,這並不表現爲運行路徑的鏈接..

從我GlassMapper型號:

[SitecoreField("FileForDownload", UrlOptions = Glass.Mapper.Sc.Configuration.SitecoreInfoUrlOptions.AlwaysIncludeServerUrl)] 
public virtual File FileForDownload { get; set; } 

產生的FileForDownload.Src仍給予其可能導致5月的相對路徑問題 如「/~/media/XXX/Annual_Report2004Version2.ashx

這可能是GlassMapper一個懸而未決的問題:enter link description here

我的電子郵件中的錨是用設置

<a href='" + pub.FileForDownload.Src + "' download>" + pub.Description + "</a> 

香港專業教育學院還利用代碼

MediaUrlOptions muo = new MediaUrlOptions(); 
muo.AlwaysIncludeServerUrl = true; 
var item = Sitecore.Context.Database.GetItem(new ID(pub.Id)); 
String url = MediaManager.GetMediaUrl((MediaItem)item, muo); 

嘗試,但那給我一個網址,導致404:

http://domainname/-/media/C9F3404515DC46288C5D73E123ACBD5D.ashx

+1

向我們展示您獲取媒體項目網址的代碼 –

+0

您是否嘗試添加名爲「下載」的html屬性? –

+1

確保您的電子郵件中包含絕對URL而不是相對的。親戚會在現場工作,但不會在電子郵件中工作。 – Anton

回答

1

如果您使用玻璃貼圖工具,則需要將字段添加屬性以獲取絕對URL:

[SitecoreField("File",UrlOptions =Glass.Mapper.Sc.Configuration.SitecoreInfoUrlOptions.AlwaysIncludeServerUrl)] 
public virtual File PDFFile{ get; set; } 
+0

感謝,但即使這個屬性我得到一個像「/-/media/XXX/Annual_Report2004Version2.ashx」\t網址...我通過訪問我的FileForDownload對象的Src屬性通過玻璃映射器映射 –

0

我想你需要一個名爲「下載」的html屬性在你的錨標籤上。 這將允許下載.pdf,而不是在新標籤頁或窗口中打開。 如果使用GlassMapper RenderLink渲染錨點,請嘗試傳入名爲download的html屬性。