gpt4 book ai didi

php - 如何在向浏览器提供页面之前导出 cytoscape 网络图

转载 作者:行者123 更新时间:2023-11-28 09:38:17 31 4
gpt4 key购买 nike

场景:客户位于带有搜索栏的页面上,他们输入查询。该查询被传递到服务器使用 php 动态生成的第二个页面。除了提供给 php 脚本的查询信息之外,还会传递一个变量,该变量允许 php 脚本确定 Flash 是否可用于客户端的浏览器。现在,如果 flash 不可用,php 脚本将显示由 cytoscape web 生成的网络图的 png,如果 flash 可用,则显示该图的 swf。

问题/疑问:1.) Cytoscape web 是一个用于显示图形的 javascript 库。它具有导出功能(http://cytoscapeweb.cytoscape.org/documentation#section/exportNetwork),但仅允许浏览器下载导出的文件。我希望能够在 php 运行时导出并保存此文件,然后在未启用 flash 的情况下将其嵌入为内容来代替 swf。如果 javascript 方法必须在客户端浏览器中运行,我该怎么做?

资源

图形导出方法1: http://cytoscapeweb.cytoscape.org/documentation#section/png

图形导出方法2: http://cytoscapeweb.cytoscape.org/documentation#section/exportNetwork

最佳答案

在 cytoscape 网络谷歌群组页面上也提出了类似的问题。
Here is the link to the question and answer

以下是所说的:

如果使用 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() 之前,必须从 read() 函数内部调用 png() 函数 - 示例:

vis.ready(function() {
var png = vis.png();
// handle the png bytes here:
alert(png);
});
vis.draw(draw_options);

一个更简单的选择是使用exportNetwork()函数,它需要服务器端部分。请参阅http://cytoscapeweb.cytoscape.org/documentation/cytoscape_web#section/exportNetwork ;它甚至包括一个 PHP 示例。JavaScript 部分将是这样的:

vis.ready(function() {
// ...
vis.exportNetwork('png', 'export.php?type=png');
// ...
});

输出文件的名称由服务器端代码完成 - 本例中为“export.php”文件。

希望有帮助

关于php - 如何在向浏览器提供页面之前导出 cytoscape 网络图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12717376/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com