MyFlow 導出的是流程圖的 **JSON 配置數據**(節點、連線、坐標等元數據),而非圖片。後端處理有兩種典型場景:
var jsonStr = JSON.stringify(myFlow.save()); // 獲取配置字符串
// 發送給後端保存
$.post('/api/flow/save', { flowData: jsonStr });
直接存入數據庫 TEXT/CLOB/JSON 類型字段,無需解析結構。
// 後端返回保存的 jsonStr
var savedJson = response.flowData;
// 直接初始化 MyFlow
myFlow.load(savedJson); // 或按文檔調用相應 API
優勢:輕量、可編輯、版本控制友好、支持撤銷/重做。
若業務需求是「存圖片供預覽/下載/打印」:
// MyFlow 內部使用 SVG/VML 繪圖
var svg = document.querySelector('#flow-container svg').outerHTML;
// 使用 canvg 或 html2canvas 將 SVG 轉 Canvas 再到 Blob
var canvas = document.createElement('canvas');
canvg(canvas, svg);
canvas.toBlob(function(blob) {
var formData = new FormData();
formData.append('image', blob, 'flow.png');
$.ajax({ url: '/api/flow/upload-image', data: formData, processData: false, contentType: false });
});
適用:服務端生成報表、郵件附件、無前端環境場景。
{id, type, x, y, text...}、連線 {from, to, type...} 等純數據結構。innerHTML 直接是 SVG/VML 代碼,可直接提取。