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

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

展开原文

原文

I have a java jar file that generates an image upon completion. I need to call this from a PHP server. How do I display the image on the web page? exec() or passthru() do not offer features to return images.

2个回答



我看到两种可能性:</ p>


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

     &lt;?php 
    header('Content-Type:image / gif');
    passthru(' java your.jar');
    ?&gt;
    </ code> </ pre> </ li>
    </ ol>

    可能存在一些问题,例如Web服务器没有 访问java可执行文件或jar文件。 如果是这样,请尝试使用绝对路径。</ p>
    </ div>

展开原文

原文

I see two possibilities:

  1. Let your Java program write the image file to a location which can be read by your web server. Then you have to separate the image creation and the image retrieving steps.
  2. If your Java program can write the image to standard output, then passthru() should work. To check this, first call your Java program manually and save the output to a file and view the file, for example by java your.jar > test.gif. If this works, use this PHP script to get started:

    <?php
        header('Content-Type: image/gif');
        passthru('java your.jar');
    ?>
    

There might be some problems like the web server having no access to the java executable or to the jar file. If so, try using absolute paths.



如果Java返回的图像是有效</ em>图像,则在PHP中只需发送一个额外的标题 使用 header()</ code>函数,因此浏览器知道它是图像而不是常规HTML。</ p>

例如 (假设返回的图像是JPEG格式):</ p>

  header('Content-Type:image / jpeg'); 
readfile('path / to / yourimage.jpg' );
</ code> </ pre>

http: //php.net/manual/en/function.header.php </ p>

http://php.net/manual/en/function.readfile.php </ p>


另一种方式 可以使用 exec()</ code>函数执行JAR文件。 应该是这样的:</ p>

  header('Content-Type:image / jpeg'); 
exec('java -jar /path/to/file.jar', $ output);
</ code> </ pre>

http://php.net/manual/en/function.exec.php </ p>
</ div>

展开原文

原文

If the image returned by Java is a valid image, in PHP you just need to send an additional header using the header() function, so the browser knows it's an image and not regular HTML.

E.g. (presuming the returned image is in JPEG format):

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


Another way could be executing the JAR file with the exec() function. Should be something like this:

header('Content-Type: image/jpeg');
exec('java -jar /path/to/file.jar', $output);

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐