2014-04-17 60 views
0

上有我們的Sitecore的網站兩種方式,我們的項目(文章)與相關媒體PDF項關聯:反響從ashx的更改PDF文件的Sitecore的渲染DownloadMedia.aspx的媒體= {GUID}

  1. 一種方式是通過點擊該內容項的內容值字段的將RichTextEditor,其產生類似「插入Sitecore的鏈接」按鈕:

< A HREF =「〜/媒體/ EB5BA6C0CCCF4781B668DE863EE996D9.ashx 「> emad_pdf_test_1 </a>

< A HREF = 「〜/媒體/ 1978B759E83348CFB23870AE31494765.ashx」> emad_pdf_test_2 </A>

  1. 第二種方法是通過經由PDF字段選擇它(具有選擇相關媒體PDF項'打開文件','下載','查看文件'和'清除'選項)。產生這樣的:

<一... HREF = 「/ DownloadMedia.aspx媒體= {EB5BA6C0-CCCF-4781-B668-DE863EE996D9}?」>下載PDF </A>

的第一種方式(#1)導致一些人在IE8 & IE9下載問題。無論如何,在經歷了一些令人難以忍受的試驗和錯誤之後,我們決定要將所有渲染像#1(.ashx)的地方改爲渲染爲像#2(DownloadMedia.aspx?media = {GUID})。我們知道一個事實,如果我們這樣做了,所有瀏覽器中的所有PDF下載都將起作用。

我們意識到,如果我們在sitecore中物理刪除相關的PDF媒體項目,sitecore不會警告我們RichTextEditor中的鏈接斷開,PDF媒體項目在DownloadMedia.aspx中被引用?media = {GUID}格式。有沒有解決這個問題的方法?

對於我們將PDF渲染從「.ashx」更改爲「DownloadMedia.aspx」,還有其他影響嗎?

回答

2

您可以更新默認的web.config通過標準Sitecore的鏈接(和媒體處理器)連接時強制PDF文件的下載。這意味着你不需要更改任何您使用#1時

<mediaTypes> 
    <mediaType name="PDF file" extensions="pdf"> 
    <mimeType>application/pdf</mimeType> 
    <forceDownload>true</forceDownload> <!-- this value has changed --> 
    <sharedTemplate>system/media/unversioned/pdf</sharedTemplate> 
    <versionedTemplate>system/media/versioned/pdf</versionedTemplate> 
    </mediaType> 
<mediaTypes> 

問題與IE的某些版本的PDF鏈接的方式是一個已知問題,Sitecore的7.2現在改變forceDownload的是true默認。

媒體請求

一些瀏覽器有下載和打開PDF文件 使用默認Sitecore的配置問題。這已被 修復爲web.config文件中元素的元素爲true。 (368967)

Release History for Sitecore CMS 7.2

編輯:

看來問題與分塊傳輸編碼和IE9/Acrobat Reader軟件插件不玩很好地在一起。你可以read more information here但解決方法是禁用塊傳輸編碼的媒體項目的配置:

<setting name="Media.EnableRangeRetrievalRequest" value="false"/> 

原來的答案仍是OP的問題,即如何強制瀏覽器下載PDF文件的最佳選擇,但這解決了爲什麼他在使用IE8/9瀏覽器時遇到問題的具體問題。