2013-02-19 10 views
9

我們有一個與策劃內容相關的Tridion用例,我們正在爲與內容相關的圖像創建多媒體組件,這些內容指向外部資源類型而不是上傳的資源類型。如果URL不以文件擴展名結尾,我們如何使用外部資源類型保存多媒體組件?

我們遇到的這個用例中的一個問題是,儘管顯式設置資源的多媒體類型,如果圖像的URL有一個查詢字符串:http://cdn.hw.net/UploadService/1c8b7f28-bb12-4e02-b888-388fdff5836e.jpg?w=160&h=120&mode=crop&404=default或使用'友好的url' :http://www.somewhere.com/images/myimage/當我們保存組件時,Tridion barfs中的錯誤消息類似於:'屬性'Filename'的值無效。意外的文件擴展名:jpg?w = 160 & h = 120 & mode = crop & 404 =默認值。期望:jpg,jpeg,jpe。'

到目前爲止,我們能夠想出解決這個問題的唯一方法就是做一些黑客行爲,比如在最後添加額外的查詢字符串參數以期望的文件擴展名結尾的網址:http://cdn.hw.net/UploadService/1c8b7f28-bb12-4e02-b888-388fdff5836e.jpg?w=160&h=120&mode=crop&404=default&ext=.jpg顯然,這不是最好的解決方案,並且實際上可能不適用於某些圖像,如果它們的服務網站嚴格驗證所請求的網址。

有沒有人有任何想法,我們如何解決這個問題?

回答

9

不幸的是,我不能真正想到一個簡單的解決方案,因爲Tridion通過檢查文件擴展名來「檢測」MIME類型。

您可以在保存時添加它並在閱讀時將其刪除(通過事件系統)?肯定是一個值得提升的要求, 據我所知,這種行爲還沒有改變,因爲即將到來的Tridion 2013 ... 查看下面的評論,它已被更改爲2013.

+3

它改變了,2013年將會有解決方案 – 2013-02-19 20:45:53

+0

在Tridion 2013中使用事件系統來處理這個問題的好主意,並且很好的瞭解它對此的直接支持。 – 2013-02-19 21:07:47

+0

2013年有沒有解決方案,我們正在使用2013 SP1,但仍然是相同的問題 – rdhaundiyal 2016-09-16 04:11:34

8

Nuno的答案+1。認識到您的問題的標題是特定於多媒體組件的,您可能需要考慮另一種使用正常組件的方法,而不是多媒體組件。您可以創建一個名爲「External Image」的正常組件模式,該模式具有外部Url字段來存儲您的無延伸url。

然後內容作者將通過Tridion GUI中的常規組件鏈接機制來包含這些圖像。

然後,您將需要一個自定義鏈接解析器TBB將解析(通過正則表達式)的輸出項目尋找任何外表套上錨標籤<a tridion:href="tcm:x-y-z">併爲每一個有<img src=...>標籤,其中SRC路徑將來自該鏈接的組件替換它們。

有關類似方法的示例,但是有視頻和自定義鏈接解析器的示例代碼,TBB查看以下帖子中的代碼:http://www.tridiondeveloper.com/integration-sdl-tridion-jw-media-player

+0

真是個好主意。就目前而言,如果我們這樣做,我們正嘗試使用相同的模式創建我們用於原始內容(使用上傳的多媒體組件)的策劃內容,作爲我們的組件/頁面模板的「正常工作」。雖然我認爲在短期內我們會按照Nuno的建議去做,但您的答案讓我重新思考如何處理這些內容的圖像的決定,就像我們爲其他內容所做的一樣,併爲即將到來的項目提供了一個解決方案(諷刺地與視頻有關。) – 2013-02-19 21:03:59

相關問題