Php 如何在将页面提供给浏览器之前导出cytoscape web图形
情景: 客户机位于带有搜索栏的页面上,他们输入一个查询。这个查询被传递到服务器用php动态生成的第二个页面。除了提供给php脚本的查询信息外,还传递了一个变量,该变量允许php脚本确定客户端浏览器是否可以使用flash。现在,如果flash不可用,php脚本将显示cytoscape web生成的网络图的png,如果flash可用,则显示该图的swf 问题: 1.Cytoscape web是一个用于显示图形的javascript库。它有出口的乐趣ctionhttp://cytoscapeweb.cytoscape.org/documentationsection/exportNetwork 但这只允许浏览器下载导出的文件。我希望能够在php运行时导出并保存该文件,然后在未启用flash的情况下将其作为内容嵌入到swf中。如果javascript方法必须在客户端的浏览器中运行,我将如何执行此操作 资源 图表导出方法1:Php 如何在将页面提供给浏览器之前导出cytoscape web图形,php,javascript,cytoscape-web,Php,Javascript,Cytoscape Web,情景: 客户机位于带有搜索栏的页面上,他们输入一个查询。这个查询被传递到服务器用php动态生成的第二个页面。除了提供给php脚本的查询信息外,还传递了一个变量,该变量允许php脚本确定客户端浏览器是否可以使用flash。现在,如果flash不可用,php脚本将显示cytoscape web生成的网络图的png,如果flash可用,则显示该图的swf 问题: 1.Cytoscape web是一个用于显示图形的javascript库。它有出口的乐趣ctionhttp://cytoscapeweb.c
图形导出方法2:在cytoscape web google groups页面上也提出了类似的问题。 以下是专家们所说的: 如果使用png,则只能将图像的字节作为字符串获取为Base64。它不会将映像导出到服务器端,也不会使其可供下载。为了做到这一点,您必须自己将字符串提交到服务器端,再次将base64转换为字节,然后让服务器组件(例如PHP、Java Servlet)将字节流回到浏览器,以便用户可以下载图像 还可以选择使用Flash组件/插件获取字节,并使其无需web服务器即可下载。这正是Cytoscape Web演示应用程序所做的http://cytoscapeweb.cytoscape.org/demo 选择“保存文件”菜单选项时执行。 您可以从演示的JavaScript文件复制示例,并使用我们为此开发的Flash库。它没有很好的文档记录,所以我想它可能有点复杂。无论如何,如果您想尝试一下,请查看:
- http://cytoscapeweb.cytoscape.org/js/content/demo.js - search for "org.cytoscapeweb.demo.Exporter"
- http://chianti.ucsd.edu/svn/cytoscapeweb/trunk/file/ - you can download the component project from Subversion with the command: svn checkout http://chianti.ucsd.edu/svn/cytoscapeweb/trunk/file cwfile-read-only
如果你在互联网上搜索,你可能会发现类似的插件
记住,在调用vis.draw之前,必须从ready函数内部调用png函数-示例:
vis.ready(function() {
var png = vis.png();
// handle the png bytes here:
alert(png);
});
vis.draw(draw_options);
一个更简单的选择是使用exportNetwork功能,它需要一个服务器端部件。看见它甚至包括一个PHP示例。
JavaScript部分如下所示:
vis.ready(function() {
// ...
vis.exportNetwork('png', 'export.php?type=png');
// ...
});
输出文件的名称由服务器端代码完成——本例中的export.php文件
我希望这会有所帮助基本上,我认为我需要一些运行cytoscapeweb javascript服务器端的方法来生成并保存文件。并且能够从我的php文件中运行JS。