Php 将多个Highchart作为Zip文件导出到我的项目目录 我已经成功地在我的一个页面中创建了总共4个不同的图表 我有一个按钮“下载所选图表”,点击该按钮,我需要用所选图表PDF创建一个ZIP文件,这意味着如果我选择三个图表,然后用三个图表PDF创建一个ZIP文件。 Highchair提供了以PDF、SVG、PNG等格式下载图表的功能,但我无法下载多个选定图表 我检查Highchart导出服务器文档- 但我不知道怎么用这个
如果有人有主意,请帮助我,我怎么做 这方面的一个示例解决方案是:Php 将多个Highchart作为Zip文件导出到我的项目目录 我已经成功地在我的一个页面中创建了总共4个不同的图表 我有一个按钮“下载所选图表”,点击该按钮,我需要用所选图表PDF创建一个ZIP文件,这意味着如果我选择三个图表,然后用三个图表PDF创建一个ZIP文件。 Highchair提供了以PDF、SVG、PNG等格式下载图表的功能,但我无法下载多个选定图表 我检查Highchart导出服务器文档- 但我不知道怎么用这个,php,jquery,highcharts,Php,Jquery,Highcharts,如果有人有主意,请帮助我,我怎么做 这方面的一个示例解决方案是: 创建图表 var options1 = { // ... }; $('#chart1').highcharts(options1); 要求Highcharts导出服务器生成图表的图像 var exportUrl = 'http://export.highcharts.com/'; var d1 = $.ajax({ url: exportUrl, // ... }); 获取生成图像的内容 $.wh
var options1 = {
// ...
};
$('#chart1').highcharts(options1);
var exportUrl = 'http://export.highcharts.com/';
var d1 = $.ajax({
url: exportUrl,
// ...
});
$.when(d1).done(function(v1) {
var p1 = new JSZip.external.Promise(function (resolve, reject) {
JSZipUtils.getBinaryContent(exportUrl + v1[0], function(err, data) {
// ...
});
});
// ...
// ...
Promise.all([p1]).then(function(values) {
var zip = new JSZip();
zip.file("chart1.png", values[0], {binary:true});
zip.generateAsync({type:"blob"})
.then(function(content) {
saveAs(content, "charts.zip");
});
});
});
您可以了解如何获取ZIP文件。这些步骤如上所述,但没有连接到任何按钮,而是在进入站点后立即执行。这里我发布了适合我的解决方案
// get selected checkbox
$('.selected_checkbox').each(function( index ){
var obj = {},chart;
chart = $('#each_chart').highcharts();
obj.svg = chart.getSVG();
obj.type = 'image/png';
obj.async = true;
obj.id = chart_id;
// ajax call for svg
$.ajax({
type: "POST",
url: url,// u need to save svg in your folder
data: obj,
success: function(data)
{
// redirect to php function and create zip
window.location = 'php function call';
}
)}
ini_set('magic_quotes_gpc', 'off');
$type = $_POST['type'];
$svg = (string) $_POST['svg'];
$filename = 'name';
$id = $_POST['id'];
if (get_magic_quotes_gpc()) {
$svg = stripslashes($svg);
}
// check for malicious attack in SVG
if(strpos($svg,"<!ENTITY") !== false || strpos($svg,"<!DOCTYPE") !== false){
exit("the posted SVG could contain code for a malicious attack");
}
$tempName = $filename.'_'.$id;
// allow no other than predefined types
if ($type == 'image/png') {
$typeString = '-m image/png';
$ext = 'png';
} elseif ($type == 'image/jpeg') {
$typeString = '-m image/jpeg';
$ext = 'jpg';
} elseif ($type == 'application/pdf') {
$typeString = '-m application/pdf';
$ext = 'pdf';
} elseif ($type == 'image/svg+xml') {
$ext = 'svg';
} else { // prevent fallthrough from global variables
$ext = 'txt';
}
ini_集('magic_quotes_gpc','off');
$type=$_POST['type'];
$svg=(字符串)$\u POST['svg'];
$filename='name';
$id=$_POST['id'];
if(获取\u magic\u引号\u gpc()){
$svg=stripslashes($svg);
}
//检查SVG中是否存在恶意攻击
如果(STRPO($svg,"谢谢你@halvorStrand的解决方案。你的回答让我知道我需要怎么做,但现在我也想在Zip存档中使用csv文件。所以我想我无论如何都需要使用PHP。你有什么想法吗?你想把图表数据作为csv,并将其添加到Zip中吗?然后我仍然会使用JSZip,但可能会结合像wher这样的Highcharts插件e您可以获得CSV。是。单击一个按钮,我想为所选图表创建PDF和CSV,并在一个ZIp中添加所有文件(CSV和PDF)。