我有一个java jar文件,可以在完成后生成图像。我需要从PHP服务器调用它。如何在网页上显示图像? exec()
或passthru()
不提供返回图片的功能。
答案 0 :(得分:1)
我看到两种可能性:
如果您的Java程序可以将图像写入标准输出,那么passthru()
应该有效。要检查这一点,首先手动调用Java程序并将输出保存到文件并查看文件,例如java your.jar > test.gif
。如果这样可行,请使用此PHP脚本开始:
<?php
header('Content-Type: image/gif');
passthru('java your.jar');
?>
可能存在一些问题,例如Web服务器无法访问java可执行文件或jar文件。如果是这样,请尝试使用绝对路径。
答案 1 :(得分:0)
如果Java返回的图像是有效图像,在PHP中你只需要使用header()
函数发送一个额外的标题,这样浏览器就知道它是一个图像而不是常规的HTML。
E.g。 (假设返回的图像是JPEG格式):
header('Content-Type: image/jpeg');
readfile('path/to/yourimage.jpg');
http://php.net/manual/en/function.header.php
http://php.net/manual/en/function.readfile.php
另一种方法是使用exec()
函数执行JAR文件。应该是这样的:
header('Content-Type: image/jpeg');
exec('java -jar /path/to/file.jar', $output);