我是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再次从服务器请求获取该文件?
因此,在客户端,它的工作方式是,他们上传图像,然后单击按钮来处理它,然后结果图像存储在服务器根目录下,然后从中抓取以显示在网页上。
任何帮助
答案 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 +'"/>');
},
..
..
});