ajax post然后获取要使用的文件

时间:2017-01-12 17:42:43

标签: php jquery ajax

我是php的新手,我正在编写一个代码,允许我将一些数据发送到php,然后执行一些exec(),然后将流程输出恢复使用(例如发布一个网页)。

$.ajax({
        url: 'some.php',
        type: 'POST',
        data: someData,
        async: false,
        success: function (html) {
            $('#showonscreen').html(html);
        },
        cache: false,
        contentType: false,
        processData: false
    });

和php部分就像

<?php
/*something like $cmd here*/
    exec("$cmd $target_file $Output_fileName $upper $lower");
    echo "<br/>done";
?>

之后,exec()在根文件夹下生成一个输出文件(例如图像),其中包含Output_fileName。 我的问题是我可以直接从客户端获取(或加载?)这个文件来使用吗?(成功的部分?)或者我需要一个$ .get再次从服务器请求获取该文件?

因此,在客户端,它的工作方式是,他们上传图像,然后单击按钮来处理它,然后结果图像存储在服务器根目录下,然后从中抓取以显示在网页上。

任何帮助

1 个答案:

答案 0 :(得分:0)

在服务器端

首先,如果您捕获下面的o / p

,它会很好
exec('your_command 2>&1', $outputAndErrors, $return_value);

然后

if (!$return_value) {

    // Ok lets decide what next

} else {

    // Ooops some problem error handling
}

如你所说,如果你正在处理图像,那么

echo base64_encode(file_get_contents($your_file_generated));

对于纯文本,你可以

header('Content-type: text/plain; charset=utf-8');

echo file_get_contents($your_file_generated);

 // OR

echo readfile($your_file_generated);

在客户端

$.ajax({
    ..
    ..
    success: function (server_response) {
        $('#showonscreen').html('<img src="data:image/png;base64,'+ server_response +'"/>');
    },
    ..
    ..
});
相关问题