我有一个 java jar 文件,它在完成后生成一个图像。我需要从 PHP 服务器调用它。如何在网页上显示图像?exec()
或passthru()
不提供返回图像的功能。
问问题
343 次
2 回答
1
我看到两种可能性:
- 让您的 Java 程序将图像文件写入 Web 服务器可以读取的位置。然后,您必须将图像创建和图像检索步骤分开。
如果您的 Java 程序可以将图像写入标准输出,那么
passthru()
应该可以工作。要检查这一点,首先手动调用您的 Java 程序并将输出保存到一个文件并查看该文件,例如通过java your.jar > test.gif
. 如果可行,请使用此 PHP 脚本开始:<?php header('Content-Type: image/gif'); passthru('java your.jar'); ?>
可能存在一些问题,例如 Web 服务器无法访问 java 可执行文件或 jar 文件。如果是这样,请尝试使用绝对路径。
于 2012-08-05T09:54:51.570 回答
0
如果 Java 返回的图像是有效图像,那么在 PHP 中您只需要使用该header()
函数发送一个额外的标头,这样浏览器就知道它是图像而不是常规 HTML。
例如(假设返回的图像是 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);
于 2012-08-05T09:49:55.257 回答