将图像发布到PHP文件的问题

时间:2014-04-27 16:23:35

标签: php jquery ajax

我正在尝试捕获一个highcharts图表并将其POST到一个PHP文件中 (result.php)。我现在能够捕获图像,但我不知道如何将捕获的图像POST到另一个文件。到目前为止,我有这个返回PNG图像的代码

function postChart(chart) {
        var obj = {},chart;
        obj.svg = chart.getSVG();
        obj.type = 'image/png';
        obj.async = true;
        exportUrl = 'http://export.highcharts.com/';
        $.ajax({
            type: "POST",
            url: exportUrl,
            data: obj,
            cache:false,
            async:true,
            crossDomain:true,
            success: function (data) {
                // How to Send Image to result.php
            },
            error: function(data) {
            }
        });
    } 

并将此result.php文件改为:

<?php
    $content = $_POST['Not Sure What!'];
    echo  $content;

现在,请您告诉我可以放入什么

  

成功:功能(数据){

                // How to Send Result to another Page
            },

将图像发布到result.php以及如何修改result.php。感谢

3 个答案:

答案 0 :(得分:1)

您可以使用高保真的exportChart API

function postChart(chart) {
    chart.exportChart({
                       url : 'path/to/result.php',
                       type: 'image/png',
                       filename: 'my-chart'
                     });
} 

然后从result.php中,您将能够访问$ _POST变量。其中包含以下数组,其中$_POST['svg']是svg格式的图像。

array (
  'filename' => 'my-chart',
  'type' => 'image/png',
  'width' => '0',
  'scale' => '2',
  'svg' => '',
)

然后,您可以使用高保真的server side script将图像从svg转换为所需的格式。

如果您不想使用java库进行转换,也可以尝试this

快乐编码!!

答案 1 :(得分:0)

仅当您的php脚本位于http://export.highcharts.com/

上的某个位置时才有效

(因为您将crossDomain属性设置为true

在你的ajax方法中:

变化:

data: obj,

TO:

data: {
 objName: obj,
}

然后在result.php中:

<?php
    var_dump($_FILES['objName']);
    // If you're interested, what else is inside $_FILES
    var_dump($_FILES);

答案 2 :(得分:0)

不完全确定你要问的是什么。这可能会有所帮助。

在上传文件时使用$_FILES。它与$_POST完全相同,但对于文件。

您可以使用$_FILES从文件中收集一系列变量。

<? 
$tempname = $_FILES['file']['tmp_name'];
$filetype = $_FILES["file"]["type"];
$filesize = $_FILES['file']['size'];
?>

在上面的例子中,这引用了名为&#34; file&#34;的文件。