2016-12-13 8 views
0

Я ищу, чтобы пользователь мог загружать PDF-файлы, которые хранятся в медиатеке Sitecore. В основном, я отправляю электронное письмо со ссылками на файлы PDF, которые пользователь может загрузить.Sitecore 8.0 Разрешить загрузку файлов из медиа-библиотеки

Возможно ли это? И если да, то какой URL использовать?

Мы используем Sitecore 8.1, .Net MVC и GlassMapper. В стеклянном картографе Ive пытался использовать свойство Src файла в модели как HREF для ссылки, которая дает путь к файлу ASHx но то не появляются работать ..

С моей GlassMapper модели:

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

Полученный FileForDownload.Src еще дает относительный путь, который может быть причиной мая выпускает например, «/~/media/XXX/Annual_Report2004Version2.ashx

Это может быть нерешенной проблемой в GlassMapper: enter link description here

якорь в моей электронной почты является настройка с помощью

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

Ive также попытался использовать код

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

Но то дает мне URL, который приводит к 404:

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

+1

показать нам код, где вы получаете URL-адрес элемента мультимедиа –

+0

сделал ли вы попробовать добавить атрибут html под названием «загрузить»? –

+1

Убедитесь, что у вас есть абсолютный URL, а не родственник в ваших письмах. Относительная будет работать на сайте, но не будет в электронной почте. – Anton

ответ

1

Если вы используете стеклянную карту, вам нужно добавить атрибут в поле, чтобы получить абсолютный URL:

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

Спасибо, но даже с этим атрибутом Im получаю url как "/-/media/XXX/Annual_Report2004Version2.ashx" \t ... Я получаю этот url, обращаясь к свойству Src моего объекта FileForDownload, отображаемому стеклянным картографом –

0

Мне кажется, вам нужен атрибут html, называемый «загружать» на ваш якорный тег. Это позволит .pdf загружаться, а не открываться в новой вкладке или окне. Если вы передаете свой якорь с помощью GlassMapper RenderLink, попробуйте передать атрибут html, называемый загрузкой.