0

我将 java 用于我的服务器端应用程序,将 phonegap 用于我的客户端。当用户登录到我的应用程序时,我需要传输巨大的图像文件。

我将这些图像文件转换为 base64 格式并将其放入 json 对象中。当我将此 json 对象发送到客户端时,我收到 java 内存不足错误。

如何在一个请求中一个一个地发送这些图像文件,因为一次发送所有文件会导致 java 内存不足 error.pl 帮助我。

这是我的代码:

File folderName = new File(processingFolder+"/"+f1[i].getName());
File[] folderFiles= folderName.listFiles();

for(int m=0;m<folderFiles.length;m++)
{
 System.out.println("folderFiles are:"+folderFiles[m]);
 String s1 = new String();
 File readfile = new File(folderFiles[m].toString());
 System.out.println(readfile.exists() + "!!");

 FileInputStream fis = new FileInputStream(readfile);
 ByteArrayOutputStream bos = new ByteArrayOutputStream();

 byte[] buf = new byte[1024];
 try {
     for (int readNum; (readNum = fis.read(buf)) != -1;) {
         bos.write(buf, 0, readNum); 
         //no doubt here is 0
         /*Writes len bytes from the specified byte array starting at offset 
         off to this byte array output stream.*/
     }
 }


 catch (IOException ex) {
 }
 byte[] bytes = bos.toByteArray();

 String result2 = Base64.encode( bytes );
 json1.put(folderFiles[m].getName(), result2);
4

1 回答 1

0

我找到了我的问题的解决方案。
我已将所有文件名以 json 格式发送到客户端。通过在客户端循环文件名,我向服务器发送请求并为每个请求获取一个文件。然后我再次在我的客户端写入该文件。

于 2012-06-06T05:15:17.460 回答