我的服务器端应用程序使用java,客户端使用phonegap。当用户登录我的应用程序时,我需要传输大量的图像文件。
我将这些图像文件转换为base64格式并将其放入json对象。当我将此json对象发送到客户端时,我发现java内存不足错误。
如何在一个请求中逐个发送这些图像文件,因为一次发送所有文件会导致java内存错误.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);
答案 0 :(得分:0)
我为我的问题找到了解决方案 我已经以json格式将所有文件名发送到客户端。通过在客户端循环文件名,我向服务器发送请求,并为每个请求获取单个文件。然后我再次在我的客户端写这个文件。