首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php - java桥将文件从php传输到java

如何使用php - java桥将文件从php传输到java
EN

Stack Overflow用户
提问于 2014-03-06 08:59:57
回答 1查看 571关注 0票数 0

我试图上传一个文件,我的前端应用程序使用PHP,后端引擎使用Java。它们都通过PHP_bridge进行通信。

我的第一个操作是,当一个文件被发布到PHP页面时,它将检索它的内容。

代码语言:javascript
复制
$filedata= file_get_contents($tmpUploadedLocation);

然后将此信息传递给接受字节数组saveFileContents(byte[] contents)的Java外观。

下面是在PHP中如何将$filedata转换为字节数组。

代码语言:javascript
复制
$bytearrayData = unpack("C*",$filedata);

最后调用了Java服务(使用php-java-bridge检索了java服务对象)

代码语言:javascript
复制
$javaService->saveFileContents($bytearrayData);

如果文件大小较小,这会很好,但是如果大小增加了2.9MB,我会收到一个错误,因此文件内容不会保存到磁盘上。

代码语言:javascript
复制
Fatal error: Allowed memory size of 134217728 bytes exhausted //This is PHP side error due to unpack

我不知道如何做到这一点,上面的方法不准确,请我有几个限制。

  1. 引擎(Java)负责保存和检索内容。
  2. PHP-HTML是前端应用程序,现在它可能是任何东西,只是PHP。
  3. 使用PHP桥与Java进行通信
  4. PHP可以访问EJB的方法来保存和检索信息。

上面的组合一切都很好,但现在是关于上传和保存文档的。EJB (应用程序引擎访问点)将用于任何前端应用程序(PHP或通过远程接口(查找)的另一个java应用程序)。

我的问题是如何将PHP中的文件内容发送到Java,在那里它不会破坏任何东西(内存)?

EN

回答 1

Stack Overflow用户

发布于 2014-04-01 14:07:13

与其将文件转换为数组,不如将其作为字符串传递。在PHP中将字符串编码为base64,并在Java中将其解码为数组。

另一种选择是通过文件系统传递文件。有些Linux系统将/dev/shm或/run/shm安装到tmpfs,这通常是在程序之间传递临时数据而不引起硬盘开销的好方法。一个典型的tmpfs算法是: 1)创建文件夹;2)从其中删除旧文件(例如,旧文件超过1分钟);3)保存新文件;4)将文件路径传递给Java;5)删除文件。如果步骤3-5由于某种原因没有完成,那么步骤2是非常重要的,这样就不会浪费RAM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22219545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档