我有一个 VF 页面,它基本上是我们 CMS 系统的一个视图。它使用通用 ID 登录,并且使用 Web 服务能够获取并显示文件列表。现在我希望能够单击一个文件并在新窗口中打开它。我有一个 CMS Web 服务,它返回文件的字节流。如何设置 Apex 远程操作以将该流返回到浏览器?此外,如何在新标签中打开它?
我想要一个删除操作,例如:
public static HttpResponse sendRequest(String endpoint, String method)
{
HttpRequest req = new HttpRequest();
req.setMethod(method);
req.setEndpoint(endpoint);
HttpResponse resp;
if (Test.isRunningTest())
{
resp = new HttpResponse();
resp.setBody('');
}
else
{
Http http = new Http();
resp = http.send(req);
}
return resp;
}
@RemoteAction
public static HttpResponse open(docid)
{
return sendRequest(API_DOMAIN + '/ws/open/' + docid + '/', 'GET');
}
然后在 UI 方面:
MainBehavior.Open= function(docid) {
Visualforce.remoting.Manager.invokeAction(
'{!$RemoteAction.ResourceCenterController.open}',
docid,
function(result, event)
{
if (event.status)
{
return result;
}
else if (event.type === 'exception')
{
alert('Not able to open!\n\n' + event.message);
}
else
{
alert('Not able to open!');
}
}
);
稍后通过点击事件:
window.open(MainBehavior.Open(docid), '_blank');
我知道这段代码不能按原样工作,但这是我的目标。关于如何解决这个问题的任何建议?