【发布时间】:2014-04-08 19:08:07
【问题描述】:
我正在尝试上传文件,我的前端应用程序是 PHP,后端引擎是 Java。它们都通过 PHP-Java_bridge 进行通信。
我的第一个动作是,当一个文件被发布到 PHP 页面时,它会检索它的内容。
$filedata= file_get_contents($tmpUploadedLocation);
然后将此信息传递给接受字节数组saveFileContents(byte[] contents)的Java EJB外观
这是我在 PHP 中如何将 $filedata 转换为字节数组的方法。
$bytearrayData = unpack("C*",$filedata);
最后调用了Java服务(使用php-java-bridge检索Java服务对象)
$javaService->saveFileContents($bytearrayData);
如果文件大小较小,这可以正常工作,但如果大小增加 2.9 MB,我会收到错误消息,因此文件内容不会保存到磁盘上。
Fatal error: Allowed memory size of 134217728 bytes exhausted //This is PHP side error due to unpack
我不知道怎么做,上面的方法不准确,请我有一些限制。
- 引擎(Java)负责保存和检索 内容。
- PHP-HTML 是前端应用程序,它现在可以是任何东西,它只是 PHP
- PHP 使用 PHP-Java-Bridge 与 Java 通信
- PHP 访问 EJB 的方法以保存和检索信息。
上述组合一切正常,但现在是关于上传和保存文档的问题。它将用于任何前端应用程序(PHP 或通过远程接口(查找)的其他 java 应用程序)的 EJB(应用程序引擎访问点)。
我的问题是如何将 PHP 中的文件内容发送到 Java,而不会破坏任何东西(内存)?
【问题讨论】:
-
PHP 中经常配置文件上传限制。这也可能是一个原因:stackoverflow.com/questions/2184513/…
-
@JoopEggen 上述限制已被覆盖,我可以上传文件但问题是将其转发到 Java 引擎。
标签: java php file-upload php-java-bridge