2016-12-13 4 views
0

사용자가 Sitecore 미디어 라이브러리에 저장된 PDF 파일을 다운로드 할 수 있도록합니다. 기본적으로, 사용자가 다운로드 할 수있는 PDF 링크가있는 전자 메일을 보내고 있습니다.Sitecore 8.0 미디어 라이브러리에서 파일 다운로드 허용

이것이 가능합니까? 그렇다면 사용할 URL은 무엇입니까?

우리는 Sitecore 8.1, .Net MVC 및 GlassMapper를 사용하고 있습니다.

: 유리 매퍼에서 은 필자 내 GlassMapper 모델에서 있습니다 .. ASHX 파일하지만 나던 작동하는 것처럼 경로를 제공하는 링크의 href가 같은 모델의 파일의 src 속성을 사용하여

시도

[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 결과 URL을 제공 먹으 렴 :

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

+1

미디어 아이템 URL을 가져 오는 코드를 보여주십시오. –

+0

"download"라는 html 속성을 추가해보십시오. –

+1

이메일에 상대적인 URL이 아닌 절대 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"와 같은 URL을 얻고 있습니다. \t ... 글래스 맵퍼로 매핑 된 내 FileForDownload 객체의 Src 속성에 액세스하여이 URL을 가져옵니다. –

0

저는 앵커 태그에 "다운로드"라는 html 속성이 필요하다고 생각합니다. 이렇게하면 새 탭이나 창을 열지 않고 .pdf 파일을 다운로드 할 수 있습니다. GlassMapper RenderLink를 사용하여 앵커를 렌더링하는 경우 다운로드라는 html 속성을 전달해보십시오.