如何在网页上显示由PHP调用的java代码生成的图像?

时间:2012-08-05 09:30:23

标签: java php image exec

我有一个java jar文件,可以在完成后生成图像。我需要从PHP服务器调用它。如何在网页上显示图像? exec()passthru()不提供返回图片的功能。

2 个答案:

答案 0 :(得分:1)

我看到两种可能性:

  1. 让您的Java程序将映像文件写入Web服务器可以读取的位置。然后,您必须分离图像创建和图像检索步骤。
  2. 如果您的Java程序可以将图像写入标准输出,那么passthru()应该有效。要检查这一点,首先手动调用Java程序并将输出保存到文件并查看文件,例如java your.jar > test.gif。如果这样可行,请使用此PHP脚本开始:

    <?php
        header('Content-Type: image/gif');
        passthru('java your.jar');
    ?>
    
  3. 可能存在一些问题,例如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);

http://php.net/manual/en/function.exec.php