2013-02-19 9 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

相关问题