類似的問題被問過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
如果你在網上搜索,你會發現類似的插件。
記住PNG()函數必須從就緒()函數中調用,調用vis.draw()之前 - 例如:
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');
// ...
});
輸出文件的名稱是由服務器端代碼做 - 「出口。PHP的」文件在這個例子中。
我希望幫助
基本上,我想我會需要在運行cytoscapeweb JavaScript的服務器端生成並保存文件存在的一些方法,而且能夠從內部運行JS我的PHP文件。 – ripit