2016-02-10 55 views
0

我正在使用Webcenter网站12.2.1,并且我有一个关于具有虚荣网址的媒体模板的问题。 我的用户希望为某些媒体(如PDF或图像或此类斑点)制作虚空网址。我可以为基于文本的属性(如javascript或css)执行此操作,但对于基于blob的属性,我有点卡住了。关键是要做一个资产的虚荣URL,我必须使用一个模板。在模板中,如果我必须显示文本,则不存在任何问题。对于blob,我可以获取该属性,但如果我想将结果作为模板进行流式传输,而不调用Blob服务器URL,则我没有任何可用的东西。Webcenter网站:图片或PDF的虚荣网址

这里是我使用的模板代码:

<%@page import="java.io.InputStream"%> 
<%@page import="java.io.FileInputStream"%> 
<%@page import="java.io.File"%> 
<%@ page import="com.fatwire.system.*"%> 
<%@ page import="com.fatwire.assetapi.data.*"%> 
<%@ page import="com.fatwire.assetapi.query.*"%> 
<%@ page import="java.util.*"%> 
<%@ page import="com.openmarket.xcelerate.asset.*"%> 
<%@ taglib prefix="cs" uri="futuretense_cs/ftcs1_0.tld"%> 
<%@ taglib prefix="ics" uri="futuretense_cs/ics.tld"%> 
<%@ taglib prefix="fragment" uri="futuretense_cs/fragment.tld"%> 
<%@ taglib prefix="render" uri="futuretense_cs/render.tld"%> 
<%@ taglib prefix="asset" uri="futuretense_cs/asset.tld"%> 
<cs:ftcs> 
<% 
Session ses = SessionFactory.getSession(); 
AssetDataManager mgr =(AssetDataManager) ses.getManager(AssetDataManager.class.getName()); 
AssetId id = new AssetIdImpl("Content_R",new Long(ics.GetVar("cid"))); 
List attrNames = new ArrayList(); 
attrNames.add("imagefile"); 
AssetData data = mgr.readAttributes(id, attrNames); 
AttributeData attrDataSource = data.getAttributeData("imagefile"); 
BlobObject fileObj = (BlobObject)attrDataSource.getData(); 
File file = new File(fileObj.getFoldername() + fileObj.getFilename()); 
InputStream in = new FileInputStream(file); 
byte[] bytes = new byte[2048]; 
int bytesRead; 
ServletOutputStream out2 = response.getOutputStream(); 
while ((bytesRead = in.read(bytes)) != -1) { 
    out2.write(bytes, 0, bytesRead); 
} 
in.close(); 
%> 

</cs:ftcs> 

我已经尝试过解决方法:重定向到团块服务器,但问题是,那么我不能直接使用的网址为图片< img src =“/ prettyUrl”>重定向不起作用。

有没有人试过这样做?

回答

1

通过Oracle社区找到解决方案:我必须使用控制器。

一个例子是在示例站点应用程序已经给出

的http:// <>:<> /网站/样品/ blob_link_builder

http://docs.oracle.com/middleware/1221/wcs/develop/GUID-C8899CBC-2EC1-4A25-A887-F8B9A868084D.htm#WBCSD8200

编辑:从那时起,我使用一个不同的解决方案,我用blob的虚荣URL。我只需要使用AssetType创建一个适用于我的资产的blob属性的虚空URL,而不是创建模板。这比用任何模板来显示图像或类似的东西要容易得多。