使PHP在Web服务器上执行并与Java应用程序通信

tHe*_*SiD 6 php java

我有一个java应用程序,它将图像作为输入并输出另一个图像.我有一个热门主机的网站(PHP + MYSQL主机).我想在网站上用PHP创建一个页面,用户可以上传一个图像,然后将图像传递给Java应用程序.

我计划做的是当用户上传图像时,它存储在Web服务器上的文件夹中.然后,我将调用服务器上的java应用程序,将图像的url作为参数传递,然后java应用程序将输出另一个图像,比方说,输出到结果文件夹.执行后的PHP页面将在浏览器上显示结果图像.

现在我的问题是:是否可以在流行的webhosts上执行java应用程序(例如我的是WebHostingBuzz.com)?

java应用程序相当繁重,因为它进行了大量的图像处理.我应该将Java应用程序卸载到另一个Web服务器吗?如果是,是否有任何服务将运行我的Java应用程序?

(可选)这是我的Java应用程序的演示,我不想存储人们上传的图像.有没有办法可以直接将上传的图像传递给java应用程序并输出直接生成的图像而不是将其存储在Web服务器上?我更喜欢这个,因为如果图像很大,我可以让PHP在超时后停止执行.

如何与PHP中的Java应用程序进行通信以获取有关其执行的信息,例如,当PHP调用java应用程序时,页面必须等到应用程序完成处理?我希望java应用程序向PHP页面发送一个响应,说明处理已完成,页面被​​重定向或刷新.

我希望你明白这个想法,请提出我可以用来实现这个的技术,如果你有更好的想法,请发布它!谢谢!

Bal*_*usC 5

现在我的问题是:是否可以在流行的网络主机上执行 Java 应用程序(例如我的是 WebHostingBuzz.com)?

技术上是可以的。但是主机必须在主机上安装 JRE 并为 PHP 用户提供足够的操作系统级和文件系统级权限。所以你真的依赖于托管是否提供这个机会。最好是联系他们的支持团队并询问。

如果支持,您可以使用shell_exec().

$result = shell_exec("java -jar /path/to/imageprocessor.jar " + $imagepath);
if ($result) {
    // Shell execution succeed.
} else {
    // Shell execution failed.
}
Run Code Online (Sandbox Code Playgroud)

对于异步通信/后台处理,客户端必须触发一个ajaxical 请求。

如果不支持,请考虑将 Java 移植到 PHP。该GD图片库有相当大量的可能是使用功能。